我将为所有iPhone机型(iOS 10.0+)提供我的应用程序,并确保在所有本地化版本中,标签和控件都不会重叠。
在一个简单的静态单元格中,只需给左侧的标签一个前导约束并将其垂直居中就足够了。右边的控件将执行相同的操作,但有一个尾随约束。一切都会好起来的。
直到Xcode警告。
它要求缺少尾随或前导约束,以避免在任何情况下重叠(在我的情况下不会发生)。
为了确保警告,我通过在右侧设置领先限制10.0来消除警告。工作正常。 (所附图片第一行)
但是,如果使用分段控件,则将其一直扩展到标签的左侧到右侧。附加的图片第三行)即使我将标签的尺寸进一步增加到了右边,它也会影响标签的宽度。
由于我希望像第二行一样具有该单元格,因此我在视图控制器中做了我认为很糟糕的事情,在这种情况下,我必须为每个屏幕尺寸指定确切的x值(可以,但我想避免)(毕竟是故事板...):
@IBOutlet weak var mySegmentedControl: UISegmentedControl!
override func viewWillLayoutSubviews() {
mySegmentedControl.frame = CGRect(x: 238.0, y: mySegmentedControl.frame.minY,
width: 121.0, height: mySegmentedControl.frame.height)
}
有没有更好的方法来实现这一目标?
答案 0 :(得分:2)
新版本的Xcode会显示为警告。
您可以修复此UILabel尾随添加大于或等于约束。
注意:您可以通过点击My Table View Controller Scene
文本附近的黄色右箭头来快速修复
UILabel
的长度是可变的。将文本设置为标签时,它将自动调整大小。如果未设置拖尾约束,则它可能与其他视图重叠(在这种情况下为分段控件)。如果添加固定约束,它将起作用,但是新的Xcode将其显示为警告。因此,我们必须将其更改为大于或小于约束。