如何使 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。记得做零检查!
假设我有一个通用的 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。记得做零检查!