到目前为止,我一直在使用自动布局,所以我不确定这是如何工作的。
我有一个简单的按钮,我想靠近我的右下角。 它如何以编程方式快速定位?
答案 0 :(得分:4)
你走了:
let button = UIButton()
button.setTitle("Button", forState: .Normal)
button.backgroundColor = UIColor.blackColor()
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
button.bottomAnchor.constraintEqualToAnchor(view.bottomAnchor, constant: -20).active = true
button.trailingAnchor.constraintEqualToAnchor(view.trailingAnchor, constant: -20).active = true
将translatesAutoresizingMaskIntoConstraints
设置为false
是必要的。默认情况下,对于您以编程方式创建的任何视图,该属性都设置为true
。
在这种情况下,您只需要2个约束(bottomAnchor
和trailingAnchor
)。由于按钮具有intrinsicContentSize
(基于标题和内容的自然尺寸),因此您无需为高度/宽度添加约束。
此外,您可能希望使用layoutMarginsGuide
将按钮固定到超级视图的边缘。这样您就不需要指定常量:
superView.layoutMargins = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
let margins = superView.layoutMarginsGuide
button.bottomAnchor.constraintEqualToAnchor(margins.bottomAnchor).active = true
button.trailingAnchor.constraintEqualToAnchor(margins.trailingAnchor).active = true
请注意,如果视图是视图控制器的根视图,则系统会设置和管理边距。顶部和底部边距设置为0磅。侧边距取决于当前尺寸等级,但可以是16或20点。您无法更改这些边距。
答案 1 :(得分:-2)