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

How to make 1 IBOutlet works for different devices?

假设我有一个通用的 iPhone 尺寸和 iPad 尺寸需要计算。

iPad 有一个 UIButton 作为 IBOutlet 链接到 UIViewController。 而 iPhone 不需要这个 UIButton 但是因为 iPhone 和 iPad 都在 1 Storyboard 和任何其他 IBOutlet 中是相同的。处理这个问题最合适的方法是什么?

我的想法是让 @IBOutlet weak var button:UIButton? 成为可选的,并且只有 iPad 的按钮链接到它。但是我在代码中做的每一个动作都需要 button?.xxxxx

有什么建议吗?

不要根据设备更改布局。 Apple 现在开始使用尺寸 classes 来描述他们的设备。目前,iPad 在全屏时的水平尺寸 class 为 "Regular",垂直尺寸 class 为 "Regular"(多任务处理时不同) iPad).

Select 你的按钮并转到属性检查器。向下滚动,你会发现这个 "Installed" 属性:

点击“+”号,应该会出现:

Select "Regular" "width" 和 "height"。现在您应该看到两个 "Installed" 属性 - 一个用于 wRhR,一个用于其他所有内容。只需取消选中其他所有按钮即可仅在 iPads.

上显示按钮

现在你需要小心代码。因为你的按钮可以是 nil on a phone。记得做零检查!