1

我目前正在玩 sizeClasses 和 iOS8,我注意到我认为可能是一个错误(不确定它是否也仅限于模拟器或设备)但想先在这里检查一下。

在开始一个新项目时使用标准的“Master-Detail”模板,我注意到 traitcollection 在 detailViewController 上似乎不一致,具体取决于您在 iPhone 6+ 上以横向模式检查它的时间。

我在 NSLogviewDidAppearwillTransistionToTraitCollectionDetailViewController 中添加了查看 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 没有意义。

** 编辑 ** 我可以确认我在物理设备上看到了相同的行为

谢谢

4

0 回答 0