使用尺寸等级的设计未按预期工作

Posted

技术标签:

【中文标题】使用尺寸等级的设计未按预期工作【英文标题】:Design using size classes not working as expected 【发布时间】:2016-04-07 22:09:52 【问题描述】:

我想描述一下我在使用 Size Classes 时遇到的问题(及其相应的解决方案)。

对于 UIViewController 和仅限 iPhone 的环境,我希望横向和纵向有不同的布局。我在使用 Size Classes 的 Interface Builder 上有相应的设计。但是,在模拟器上运行应用程序时,无论设备方向如何,我总是得到纵向布局。

我尝试了两种不同的方法:

    为 Any-Any Size Class 创建纵向布局,为 wAny-hCompact 创建横向布局。 为 wCompact-hRegular 创建纵向布局,为 wAny-hCompact 创建横向布局,为 Any-Any 创建不同的布局。

在这两种情况下,所有 iPhone 设备和方向的 Interface Builder 的预览功能看起来都很好,但在模拟器上,无论设备方向如何,我总是看到纵向布局。

我使用的是 Xcode 7.2,并且我已经在 ios 8.4 和 9.2 上尝试了所有 iPhone 模拟器。在任何大小类上都没有看到关于自动布局约束的警告。

【问题讨论】:

【参考方案1】:

这个问题原来与大小类的使用无关。我没有注意到在呈现有问题的视图控制器时收到了这个警告:Presenting view controllers on detached view controllers is discouraged

解决该问题并删除该警告使一切按预期工作。

【讨论】:

以上是关于使用尺寸等级的设计未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

CollectionView estimatedItemSize 未按预期工作

子报表在 Matrix 上未按预期工作,具有向下钻取功能

如何为特定设备而不是尺寸等级设计故事板

Iphone 和 Ipad 的尺寸等级设计

嵌入 ViewController 时视图未按预期使用 AutoLayout 进行布局

Angular ngOnit () 未按预期工作