以编程方式在swift中设置我的按钮位置

时间:2015-11-28 18:33:38

标签: swift

到目前为止,我一直在使用自动布局,所以我不确定这是如何工作的。

我有一个简单的按钮,我想靠近我的右下角。 它如何以编程方式快速定位?

2 个答案:

答案 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个约束(bottomAnchortrailingAnchor)。由于按钮具有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)

您可以通过编程方式使用自动布局。

SnapKit是一个很好的swift库,可以使autolayour代码更易于使用和读取。

否则你总能以正常的方式使用它。这是两个很好的教程:

1
2