代码之家  ›  专栏  ›  技术社区  ›  Tony Lin

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

  •  2
  • Tony Lin  · 技术社区  · 8 年前

    假设我要计算出iPhone和iPad的一般尺寸。

    iPad有一个 UIButton 链接到 UIViewController 作为一个 IBOutlet . 而iPhone不需要这个 UIButton 但是自从iPhone和iPad都在1 Storyboard 还有其他的吗 IBOutlet 都是一样的。处理这个问题最合适的方法是什么?

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

    有什么建议吗?

    1 回复  |  直到 8 年前
        1
  •  3
  •   Sweeper    8 年前

    不要根据设备更改布局。苹果现在开始使用大小类来描述他们的设备。目前,iPad在全屏状态下的水平尺寸等级都是“常规”,而垂直尺寸等级都是“常规”(在iPad上进行多任务处理时则不同)。

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

    enter image description here

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

    enter image description here

    为“宽度”和“高度”选择“常规”。现在,您应该看到两个“已安装”属性——一个用于wRhR,另一个用于其他所有属性。只需取消选中该按钮,其他所有操作都将只在iPad上使用该按钮。

    enter image description here

    现在,在编写代码时需要小心。就像你的按钮一样 nil 在电话里。记得做零检查!