Navigation Bar is detaching from status bar when applying a scale transform on custom transition
| Originator: | pol.quintana1 | ||
| Number: | rdar://34256773 | Date Originated: | September 5 2017, 5:40 PM |
| Status: | open | Resolved: | |
| Product: | iOS + SDK | Product Version: | 11.0 |
| Classification: | Bug | Reproducible: | Always |
Area: UIKit Summary: I have a custom transition that zooms out a bit the current controller, and then presents on top another controller. It is working as expected under the iOS 10 SDK, but it is awful on the iOS 11 SDK. I am going to attach several videos for you to see the difference & the issues. Also, I've attached a minimal project that actually shows the issue in a brand new scene. We have two main issues: 1. On one hand we have a controller that has `edgesForExtendedLayout = [.left, .bottom, .right]`, having a scrollView with the size of the view In this case, the issue is that the presentation transition is working correctly on presentation, but on dismissal it does not show the status bar until the animation is completed, leaving a black area in the place of it. 2. On the other hand, controller that have the default value for `edgesForExtendedLayout` also having a scrollView with the size of the view. In this case, the issue is that on presentation, the feeling is that the content inset on top is reduced, and on dismissal is reset to its default value. But it is actually never changing. The result you see onscreen is that there's a weird jumping going on there. In the attached video/project you can see that the UITableView separators are jumping up and down on presentation and dismissal. Also, you can see that after the presentation of the controller, the presenting controller's navigation bar size is not the same. It is actually leaving the top part (the one that "belongs" to the status bar) transparent. So you can see the controller that's behind the navigation bar. I've also seen this last issue about seeing the controller that's behind on the Apple Music app. See apple-music-issue.png The logic that performs the dismiss is the same as the one that does the presentation, but inverted. Steps to Reproduce: Extract contents of TransitionDemo.zip, open TransitionDemo.xcodeproj with Xcode 9 Beta 6, and run. The demo has a "Click me" button that will perform the presentation. In the case of testing the edgesForExtendedLayout version, add `edgesForExtendedLayout = [.left, .bottom, .right]` on ViewController.swift - Line 35. Expected Results: The transition should look as iOS10.mov Actual Results: The transition is not performed correctly, exposing the previous explained issues. Version/Build: Xcode 9 Beta 6 (9M214v) macOS Sierra 10.12.6 (16G29)
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!