您可以设置框架的样子,并将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)
])
据我所知,NSLayoutConstraint仍然在迅速2. API的一部分,你需要创建一些那些并将它们添加到'self.view'使用方法'addConstraint'('s')。 – dudeman
顺便说一句,如果你使用'frame',就像Rob想要的那样,你可能也想设置'autoresizingMask'。就个人而言,我会坚持约束。 – Rob