我试图弄清楚如何编程地使用UITraitCollection,但我发现很难理解它。我正在开发iPad视网膜,在iOS 8中。
println(self.traitCollection)返回以下输出:
<UITraitCollection: 0x10df4c7f0; _UITraitNameUserInterfaceIdiom = Pad,
_UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular,
_UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0,
_UITraitNameInteractionModel = 1>这是非常直接的。但是当我旋转屏幕时,我得到了完全相同的输出。即相同的垂直尺寸级和相同的水平尺寸级。
因此,我的问题是,是否需要为每个设备方向指定我想要的大小类(据我所见,大小类是只读属性!)还是我漏掉了什么明显的东西?在2014年iPhone视频网站上的“Cocoa中的新事物”演讲中给出的例子中,他以iPhone为例,它对每个设备的方向都有不同的垂直/水平大小级别。
你会怎么做?
发布于 2014-06-20 17:14:27
本文件 (滚动到通用应用程序的统一故事板)解释了iPads和iPhones的大小类。
请注意,iPhone有点棘手。所有的iPads在任何方向上都是规则的x-正则的,但是iPhone的大小类在方向上会发生变化,从肖像中的正则(H)-x-紧凑(W)到景观中的压缩-x-压缩。
对于所有这些变化,传言的解释是,苹果可能很快就会推出更多的屏幕分辨率,而目前的数字已经需要大量的if-然后没有这些大小的类。为了简化这种转换,我建议您考虑一些更像响应性网页设计的东西,您可以定义一些通用的布局,然后将这些布局中的任意大小都很好地扩展到合适的位置。
编辑:
1)如果链接中断,请查找“iOS中的新内容”Apple,转到iOS8部分,查找“支持新屏幕大小和缩放”
2) iPhone 6+在景观模式下具有一定的宽度。
https://stackoverflow.com/questions/24331040
复制相似问题