AutoLayout 正确定位按钮
AutoLayout correct positioning of button
我有一个带有 UIButton
的视图。我添加了两个约束:
导致 space 到 16 的超级视图
Top space to top layout of 265
根据我查看的设备不同,按钮位于不同的位置。使它保持一致的唯一方法是将它居中。因此,我一直在通过设置垂直和水平距离从居中的子视图构建视图。
我知道这些约束是实际数值,不同的 iOS 设备有不同的屏幕尺寸。我如何设置它,以便按钮将出现在同一位置,相对于每个设备的屏幕尺寸?例如,如果我有一个按钮位于屏幕下方四分之一处,我如何确保该按钮在所有设备上都显示在屏幕下方四分之一处?
我觉得可以写整本书来介绍如何设置具有自动约束的屏幕。
没有代码的解决方案可能是:
将按钮放在 UIView 中。使用等高约束将该视图的高度设置为等于控制器的高度。将该约束的乘数设置为 3/4。还向视图添加前导、尾随和底部约束。现在将您的标签放在视图中,并使用前导、尾随、顶部和底部约束将其固定在视图中。完毕。如果您的目标是 iOS 9,请使用 LayoutGuide 而不是 UIView。
可以使用代码完成更合适的解决方案:在控制器中创建按钮顶部约束的 IBOutlet。将 ViewDidLoad: 方法中那个 IBOutlet 的常量更改为 self.view.frame.height / 4。
我有一个带有 UIButton
的视图。我添加了两个约束:
导致 space 到 16 的超级视图 Top space to top layout of 265
根据我查看的设备不同,按钮位于不同的位置。使它保持一致的唯一方法是将它居中。因此,我一直在通过设置垂直和水平距离从居中的子视图构建视图。
我知道这些约束是实际数值,不同的 iOS 设备有不同的屏幕尺寸。我如何设置它,以便按钮将出现在同一位置,相对于每个设备的屏幕尺寸?例如,如果我有一个按钮位于屏幕下方四分之一处,我如何确保该按钮在所有设备上都显示在屏幕下方四分之一处?
我觉得可以写整本书来介绍如何设置具有自动约束的屏幕。
没有代码的解决方案可能是:
将按钮放在 UIView 中。使用等高约束将该视图的高度设置为等于控制器的高度。将该约束的乘数设置为 3/4。还向视图添加前导、尾随和底部约束。现在将您的标签放在视图中,并使用前导、尾随、顶部和底部约束将其固定在视图中。完毕。如果您的目标是 iOS 9,请使用 LayoutGuide 而不是 UIView。
可以使用代码完成更合适的解决方案:在控制器中创建按钮顶部约束的 IBOutlet。将 ViewDidLoad: 方法中那个 IBOutlet 的常量更改为 self.view.frame.height / 4。