ios - 如何使用尺寸等级为小型 iPhone 和 iPhone 6 进行不同的设计?

标签 ios iphone xcode interface-builder xib

是否可以在 Interface Builder 中为 iPhone 6 plus 和其他使用尺寸等级的 iPhone 进行不同的设计?我只需要纵向模式。

根据一些教程(http://swiftiostutorials.com/using-size-classes-xcode-6/)看来应该是可以的。同样在 IB Compact+Any 中似乎适用于小型 iPhone:

enter image description here

和适用于所有 iPhone 的 Compact+Regular:

enter image description here

但是当我尝试接收不同的设计时,它不起作用。例如,如何隐藏小型 iPhone 的 View 并为 iPhone 6 plus 显示它? enter image description here

最佳答案

遗憾的是,您只能对横向执行此操作(iPhone 6 plus 与 iPhone 系列的其他产品具有不同的特征集合)。

IB 中的措辞方式有点误导。您期望 wCompacthRegular 覆盖 wCompacthAny 的规则是正确的。问题是 iPhone 6 plus 也属于 wCompacthRegular 类别。

在 iPhone 6 plus 上运行时打印 View 的特征集合证明了这一点:

<UITraitCollection: 0x7f968ada42c0; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 3.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>

特别是这两个:

_UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular

您可以在运行时更改/覆盖特征(即告诉 View “无论您怎么想,我都说您有一个紧凑的高度等”)但是对于您的情况,我只会切换屏幕的高度并手动隐藏 View 基于该信息。

关于ios - 如何使用尺寸等级为小型 iPhone 和 iPhone 6 进行不同的设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31862795/

相关文章:

IOS/objective-C/ Storyboard : Prevent ViewController From Launching Modally

ios - 不使用 Xcode 的 Flutter 项目中 iOS 的文件夹引用

xcode - 令人困惑的动态链接文档

ios - Swift:属性未在 super.init 调用时初始化

ios - ASIHTTPRequest 缓存我的数据。我不想要任何类型的缓存

ios - UIWebView吸引用户点击链接

iphone - iTunes 报亭封面艺术更改为默认图像

iphone - 奇怪的是,应用程序在 iphone 4s 和 ipad 上运行良好,但在 iphone 4 上崩溃

iphone - 如何从移动网站打开 iOS 6 map ?

ios - 按照这个 objective-c 教程制作按钮时,我哪里出错了?