Fix timestamp label layout when not in fullscreen #1854
Merged
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.
What does this implement/fix? Explain your changes.
MessageKit shows timestamps when
showMessageTimestampOnSwipeLeft = true, but I notice a bug that timestamp label layout is wrong when app isn't in fullscreen or is using UISplitViewController. So actually if we run the built-in Example project in iPad simulator, since it uses UISplitViewController, we can easily find this issue (screenshots below).The fix is easy, just replace
UIScreen.main.bounds.width + paddingLeftwithself.frame.maxX + paddingLeft. Because the timestamp labels are relatively positioned to theMessageContentCell, not the screen.Does this close any currently open issues?
No, I didn't find any related discussion.
Any relevant logs, error output, etc?
No, only UI layout
Any other comments?
No
Where has this been tested?
Devices/Simulators: Both simulator and real devices (iPad Pro 11-inch 2018)
iOS Version: iOS 17.5
Swift Version: Swift 5
MessageKit Version: v4.2.0
Screenshots before & after