Skip to content

Commit 8a0de4a

Browse files
committed
fix(iOS): align line height centering rounding with Android
Changed from ceil/floor to round with remainder calculation to prevent 1-pixel vertical shifts and ensure cross-platform parity.
1 parent 856cfaa commit 8a0de4a

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

  • packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager

packages/react-native/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -212,8 +212,8 @@ - (LinesMeasurements)getLinesForAttributedString:(facebook::react::AttributedStr
212212
CGFloat descender = fabs(font.descender);
213213
CGFloat textHeight = ascender + descender;
214214
CGFloat leading = usedRect.size.height - textHeight;
215-
CGFloat adjustedAscender = ascender + ceil(leading / 2.0);
216-
CGFloat adjustedDescender = descender + floor(leading / 2.0);
215+
CGFloat adjustedAscender = ascender + round(leading / 2.0);
216+
CGFloat adjustedDescender = descender + (leading - round(leading / 2.0));
217217
auto line = LineMeasurement{
218218
std::string([renderedString UTF8String]),
219219
rect,

0 commit comments

Comments
 (0)