如何以编程方式向 Swift 2 中的按钮添加约束?

How to programatically add constraints to a button in Swift 2?

我在这方面看到的所有问题都是针对 swift 1. 我正在尝试创建一个按钮并向其添加约束。我希望按钮位于 30 x 和 390 y 处。我还希望按钮的大小为 75 x 和 75 y。我尝试过的一切都没有奏效。请帮忙。这是我创建按钮的代码(您会看到我向按钮添加了一个图像,以便我可以更好地看到它):

let button = UIButton(type: UIButtonType.System) as UIButton
button.setImage(UIImage(named: "BlueBall.png")!, forState:  U IControlState.Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
self.view.addSubview(button)

谢谢。安东

您可以随意设置框架,并将 translatesAutoresizingMaskIntoConstraints 设置为 true。在你的情况下,这将是最简单的答案。

    let button = UIButton(type: UIButtonType.System)
    // button.translatesAutoresizingMaskIntoConstraints is true by default
    button.frame = CGRectMake(30, 390, 75, 75)
    button.setImage(UIImage(named: "BlueBall.png")!, forState: UIControlState.Normal)
    button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
    view.addSubview(button)

如果你真的想在有限制的情况下做到这一点,那就需要做更多的工作。如果您的部署目标是 iOS 9.0 或更高版本,您可以这样做:

    let button = UIButton(type: UIButtonType.System)
    button.setImage(UIImage(named: "BlueBall.png")!, forState: UIControlState.Normal)
    button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
    view.addSubview(button)

    button.translatesAutoresizingMaskIntoConstraints = false
    NSLayoutConstraint.activateConstraints([
        button.leadingAnchor.constraintEqualToAnchor(view.leadingAnchor, constant: 30),
        button.topAnchor.constraintEqualToAnchor(view.topAnchor, constant: 390),
        button.widthAnchor.constraintEqualToConstant(75),
        button.heightAnchor.constraintEqualToConstant(75)
    ])