Chr*_*ris 5 ios swift size-classes
我试图弄清楚如何以UITraitCollection编程方式使用,但我发现很难理解它.我正在开发iOS 8中的iPad视网膜.
println(self.traitCollection) 返回以下输出:
<UITraitCollection: 0x10df4c7f0; _UITraitNameUserInterfaceIdiom = Pad,
_UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Regular,
_UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0,
_UITraitNameInteractionModel = 1>
Run Code Online (Sandbox Code Playgroud)
这很直截了当.但是当我旋转屏幕时,我得到完全相同的输出.即,相同的垂直尺寸类和相同的水平尺寸类.
所以我的问题是,我是否需要为每个设备方向指定我想要的大小类(据我所知,大小类是只读属性!)或者我错过了一些明显的东西?在WWDC 2014视频网站上的"Cocoa-Touch中的新内容"演讲中给出的示例中,他使用iPhone作为示例,其针对每个设备方向具有不同的垂直/水平尺寸类别.
你会怎么做?
本文档(滚动到Universal Storyboards for Universal Apps)解释了iPad和iPhone的尺寸等级.
请注意,iPhone有点棘手.所有iPad在任何方向都是Regular-x-Regular,但是iPhone的尺寸等级会在方向上发生变化,从Portrait中的Regular(h)-x-Compact(w)到Landscape中的Compact-x-Compact.
对于所有这些变化的传闻解释是苹果可能很快会推出更多的屏幕分辨率,而目前的数字已经需要一堆if-then而没有这些尺寸等级.为了简化这种转变,我建议您考虑更像响应式网页设计的内容,在这里您可以定义一些通用布局,然后在其中一个布局中拉伸内容以适应任何确切的大小.
编辑:
1)如果链接断开,找到"iOS中的新东西"Apple Doc,转到iOS8部分,查找"支持新的屏幕大小和缩放"
2)iPhone 6+在横向模式下具有常规宽度.
| 归档时间: |
|
| 查看次数: |
5778 次 |
| 最近记录: |