使用代码更新故事板约束
Update storyboard constraint using code
我在代码中有一个 UIImage
,我想在按下按钮时垂直放大。 UIImage
在故事板中完全受限,我想在按下按钮时更改它的高度。
我在代码中链接了 UIImage
及其高度限制:
@IBOutlet weak var botBotCons: NSLayoutConstraint!
@IBOutlet weak var botBot: UIImageView!
然后
@IBAction func testButton(sender: UIBarButtonItem) {
println("testButton pressed")
self.botBotCons.constant = 68 //or +=62 as its current constant is 6
self.view.layoutIfNeeded()
}
我在控制台收到 testButton pressed 消息,但图像没有调整大小。我究竟做错了什么?我是否也需要更改情节提要中的某些内容?
您应该在动画块中调用 layoutIfNeeded
。 Apple 实际上建议您在动画块之前调用一次,以确保所有挂起的布局操作都已完成。我刚刚通过调整按钮大小进行了检查 - 一切正常。
@IBOutlet weak var myBtn: UIButton!
@IBOutlet weak var btnHeight: NSLayoutConstraint!
@IBOutlet weak var btnWidth: NSLayoutConstraint!
@IBAction func resizeBtn(sender: AnyObject) {
self.myBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0)
self.view.layoutIfNeeded()
self.btnHeight.constant += 50
self.btnWidth.constant += 50
UIView.animateWithDuration(0.7, animations: {
self.view.layoutIfNeeded()
})
}
P.S。确保其他约束不会阻止您的更改。
我在代码中有一个 UIImage
,我想在按下按钮时垂直放大。 UIImage
在故事板中完全受限,我想在按下按钮时更改它的高度。
我在代码中链接了 UIImage
及其高度限制:
@IBOutlet weak var botBotCons: NSLayoutConstraint!
@IBOutlet weak var botBot: UIImageView!
然后
@IBAction func testButton(sender: UIBarButtonItem) {
println("testButton pressed")
self.botBotCons.constant = 68 //or +=62 as its current constant is 6
self.view.layoutIfNeeded()
}
我在控制台收到 testButton pressed 消息,但图像没有调整大小。我究竟做错了什么?我是否也需要更改情节提要中的某些内容?
您应该在动画块中调用 layoutIfNeeded
。 Apple 实际上建议您在动画块之前调用一次,以确保所有挂起的布局操作都已完成。我刚刚通过调整按钮大小进行了检查 - 一切正常。
@IBOutlet weak var myBtn: UIButton!
@IBOutlet weak var btnHeight: NSLayoutConstraint!
@IBOutlet weak var btnWidth: NSLayoutConstraint!
@IBAction func resizeBtn(sender: AnyObject) {
self.myBtn.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0)
self.view.layoutIfNeeded()
self.btnHeight.constant += 50
self.btnWidth.constant += 50
UIView.animateWithDuration(0.7, animations: {
self.view.layoutIfNeeded()
})
}
P.S。确保其他约束不会阻止您的更改。