我正在玩sizeClasses和iOS8,我注意到我认为可能是一个错误(不确定它是否仅限于模拟器或设备)但是想先在这里查看。
在开始一个新项目时使用标准的“Master-Detail”模板,我注意到detailViewController上的traitcollection似乎不一致,具体取决于你在横向模式下在iPhone 6+上检查它的时间。
我在DetailViewController中的viewDidAppear
和willTransistionToTraitCollection
上添加了一个NSLog来查看traitCollection,这些是结果
以横向推出iPhone 6+
View did appear trait collection <UITraitCollection: 0x7fe76b4895f0;
_UITraitNameUserInterfaceIdiom = Phone,
_UITraitNameDisplayScale = 3.000000,
_UITraitNameHorizontalSizeClass = Regular,
_UITraitNameVerticalSizeClass = Compact,
_UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>
以纵向推出iPhone 6+,导航至DetailViewController和rotateDevice
<UITraitCollection: 0x7fe76b7076e0;
_UITraitNameUserInterfaceIdiom = Phone,
_UITraitNameDisplayScale = 3.000000,
_UITraitNameHorizontalSizeClass = Compact,
_UITraitNameVerticalSizeClass = Compact,
_UITraitNameTouchLevel = 0,
_UITraitNameInteractionModel = 1>
正如您可以看到手机是否已在横向模式下启动,与在同一个viewController上旋转设备相比,detailViewController具有不同的traitCollection。这是一个模拟器错误吗?或者这是预期的行为?如果是这样,在设计布局时对sizeClasses没有意义。
**编辑** 我可以确认我在物理设备上看到了相同的行为
感谢