嗨,我是programmaticaly添加一些像这样的视图
let xPos = (self.view.frame.size.width - 200)/2
self.headerLabel = UILabel(frame: CGRect(x: xPos, y: 50.0, width: 200.0, height: 100.0))
self.shopButton = UIButton(frame: CGRect(x: xPos, y: 150.0, width: 200.0, height: 40.0))
self.createButton = UIButton(frame: CGRect(x: xPos, y: 230.0, width: 200.0, height: 40.0))
self.orLabel = UILabel(frame: CGRect(x: xPos, y: 200.0, width: 200.0, height: 20.0))
问题是当我将设备旋转到横向模式时,反之亦然,我的视图与左侧对齐。我该如何预防?
答案 0 :(得分:0)
使用NSLayoutConstaint
例如
let horizontalConstraint = NSLayoutConstraint.init(item: view, attribute: .centerX, relatedBy: .equal, toItem: view.superview, attribute: .centerX, multiplier: 1, constant: 1)
horizontalConstraint.isActive = true
let verticalConstraint = NSLayoutConstraint.init(item: view, attribute: .centerY, relatedBy: .equal, toItem: view.superview, attribute: .centerY, multiplier: 1, constant: 1)
verticalConstraint.isActive = true
答案 1 :(得分:0)
如果可以,我会在界面构建器中添加这些元素。然后,您可以手动设置约束,这比以编程方式添加约束要容易得多。您看到此行为的原因是因为您的元素没有约束,因此在旋转屏幕时它们不会更改方向。
https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2
答案 2 :(得分:0)
如果您根本没有使用故事板,我建议您使用Neon框架。 它可以帮助您设计整个视图 - 还可以在程序上设置按钮,图像......
请参阅以下Github回购: https://github.com/mamaral/Neon