如何使1 IBOutlet适用于不同的设备?

时间:2018-05-20 07:18:30

标签: ios swift autolayout storyboard xib

假设我有一般的iPhone尺寸和iPad尺寸。

iPad有一个UIButton,可以UIViewController作为IBOutlet。 虽然iPhone并不需要这个UIButton,但iPhone和iPad全部在1 Storyboard和任何其他IBOutlet相同。处理这个问题最恰当的方法是什么?

我的想法是让@IBOutlet weak var button:UIButton?可选,只有iPad的按钮链接到它。但我在代码中执行的每项操作都需要button?.xxxxx

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

请勿根据设备更改布局。 Apple现在开始使用大小类来描述他们的设备。目前,iPad的横向尺寸均为" Regular"和#34;常规"垂直尺寸等级全屏时(当你在iPad上进行多任务处理时它会有所不同)。

选择按钮并转到属性检查器。向下滚动,你会发现这个"已安装"属性:

enter image description here

点击" +"标志,这应该出现:

enter image description here

选择"常规"对于"宽度"和"身高"。现在你应该看到两个"已安装"属性 - 一个用于wRhR,另一个用于其他一切。只需取消选中其他所有内容,只需在iPad上有按钮即可。

enter image description here

现在你需要小心代码。您的按钮可以在手机上nil。记得做零检查!