![](/img/trans.png)
[英]How to create a XIB that works from iPhone 4 to iPhone 6 Plus without using size classes and storyboards?
[英]How to make a different design for small iPhones and iPhone 6 plus using size classes?
是否可以在Interface Builder for iPhone 6 plus和其他使用大小类的iPhone中进行不同的设计? 我只需要肖像模式。
根据一些教程( http://swiftiostutorials.com/using-size-classes-xcode-6/ ),它似乎应该是可能的。 同样在IB Compact + Any似乎适用于小型iPhone:
适用于所有iPhone的Compact + Regular:
但是,当我试图接受不同的设计时,它不起作用。 例如,如何隐藏小型iPhone的视图并将其显示为iPhone 6 plus?
可悲的是,你只能用于横向(iPhone 6 plus具有与其他iPhone系列不同的特征集合)。
它在IB中的措辞方式有点误导。 你是正确的期望w Compact h Regular来覆盖w Compact h Any的规则。 问题是,在iPhone 6下加在W紧H普通类下降太多。
在iPhone 6 plus上运行时打印视图的特征集证明了这一点:
<UITraitCollection: 0x7f968ada42c0; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 3.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>
这两个特别是:
_UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular
您可以在运行时更改/覆盖特征(即告诉视图“无论您的想法如何,我说您有紧凑的高度等”)但是对于您的情况,我只需打开屏幕的高度并基于此手动隐藏视图信息。
在纵向方向上,您无法使用尺寸类来区分iPhone 6和6+。 您必须通过在加载视图后检查屏幕高度以编程方式执行此操作。
人机界面指南显示,两部手机都具有相同的纵向特征: 紧凑宽度/常规高度 。 第一张图片中的集合是紧凑宽度/任何高度,其中包括紧凑宽度/常规高度 - 这就是为什么如果您在一个视图而不是另一个视图中安装视图时没有看到差异的原因。
虽然不适用于您的情况,但值得注意的是,您可以在横向方向上区分这两个设备,因为6+使用常规宽度/紧凑高度,但较小的手机使用紧凑宽度/紧凑高度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.