使用代码更新故事板约束

时间:2015-08-21 06:16:46

标签: ios swift uistoryboard

我的代码中有一个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 press 消息,但图片没有调整大小。我究竟做错了什么?我是否还需要在故事板中更改某些内容?

1 个答案:

答案 0 :(得分:0)

你应该在动画块中调用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。确保其他限制条件不会阻止您的更改。