Search code examples
iosiphoneautolayoutios-simulatoriphone-6-plus

iOS 8.1 Simulator for iPhone 6 Plus cutting off part of view


I'm using Auto Layout/Constraints with Interface Builder in Xcode 6.1, so that my App renders correctly on all iOS devices. It works great across the iPhone 4s/5/5s/6 simulators and a real 5s, but part of the view is cut off when I run it on the iPhone 6 Plus Simulator.

To debug this, I downloaded the AlternateViews example code from Apple, and saw the exact same behavior. Then I tried to write a really simple test App, and saw the same thing again. I noticed that the iPad Air Simulator also cut off part of the view, and when I tested on a real iPad Air, the simulated/real displays did not match. I feel like there is something wrong in my dev setup (not a bug in the iOS Simulator), but I've double-checked everything and even reinstalled Xcode. Please let me know if you've seen this before, or have a recommendation on what to try next. Thanks!

AlternateViews Example on iPhone 6 Simulator: AlternateViews Example on iPhone 6 Simulator

AlternateViews Example on iPhone 6 Plus Simulator: AlternateViews Example on iPhone 6 Plus Simulator

My SimpleTestApp on iPhone 6 Simulator: SimpleTestApp on iPhone 6 Simulator

My SimpleTestApp on iPhone 6 Plus Simulator: SimpleTestApp on iPhone 6 Plus Simulator

My SimpleTestApp on iPad Air Simulator: SimpleTestApp on iPad Air Simulator

My SimpleTestApp on Real iPad Air: SimpleTestApp on Real iPad Air


Solution

  • I've seen this offsetting on rotation issue, starting in June 2014 when iOS 8 first went public, and I submitted to Apple a test project that showed how to reproduce it. In most cases it is possible to work around and prevent it, but my test project continued to demonstrate the issue.

    A few weeks ago, however, Apple replied to my bug report, asking me to test in iOS 8.2 (available in beta as part of the Xcode 6.2 beta). The issue could no longer be reproduced!

    Therefore I would suggest that what you're encountering is, at least in part, a genuine iOS bug, and that iOS 8.2 will prove to have fixed it.