Fix text baseline being moved up on iOS #44932
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
Fixes #44929
Moves calling
RCTApplyBaselineOffset
so it's called in similar way as on the old architecture:react-native/packages/react-native/Libraries/Text/Text/RCTTextShadowView.mm
Line 229 in 726a4a1
react-native/packages/react-native/Libraries/Text/Text/RCTTextShadowView.mm
Lines 165 to 167 in 726a4a1
I'm not exactly sure why (and Apple's docs aren't helping) but it looks like calling
NSTextStorage initWithAttributedString
results in an attributed string where emojis are separate fragments with Apple's emoji font set, which results in the correct baseline calculations. This is the way it happens on the old arch.The way it's currently implemented on the new architecture,
RCTApplyBaselineOffset
is called on ` newly created attributed string where emojis are in the same fragment as other parts of the text which alters the result of baseline calculations compared to what's later drawn on the screen.Changelog:
[IOS] [FIXED] - Fixed text baseline being moved upwards in certain cases
Test Plan:
Check the following snipped