How to update the constant height constraint of a UIView programmatically?

后端 未结 9 2254
执笔经年
执笔经年 2020-11-27 11:16

I have a UIView and I set the constraints using Xcode Interface Builder.

Now I need to update that UIView instance\'s height constant progra

相关标签:
9条回答
  • 2020-11-27 12:09

    Select the height constraint from the Interface builder and take an outlet of it. So, when you want to change the height of the view you can use the below code.

    yourHeightConstraintOutlet.constant = someValue
    yourView.layoutIfNeeded()
    

    Method updateConstraints() is an instance method of UIView. It is helpful when you are setting the constraints programmatically. It updates constraints for the view. For more detail click here.

    0 讨论(0)
  • 2020-11-27 12:11

    First connect the Height constraint in to our viewcontroller for creating IBOutlet like the below code shown

    @IBOutlet weak var select_dateHeight: NSLayoutConstraint!
    

    then put the below code in view did load or inside any actions

    self.select_dateHeight.constant = 0 // we can change the height value
    

    if it is inside a button click

    @IBAction func Feedback_button(_ sender: Any) {
     self.select_dateHeight.constant = 0
    
    }
    
    0 讨论(0)
  • 2020-11-27 12:18

    Change HeightConstraint and WidthConstraint Without creating IBOutlet.

    Note: Assign height or width constraint in Storyboard or XIB file. after fetching this Constraint using this extension.

    You can use this extension to fetch a height and width Constraint:

    extension UIView {
    
    var heightConstraint: NSLayoutConstraint? {
        get {
            return constraints.first(where: {
                $0.firstAttribute == .height && $0.relation == .equal
            })
        }
        set { setNeedsLayout() }
    }
    
    var widthConstraint: NSLayoutConstraint? {
        get {
            return constraints.first(where: {
                $0.firstAttribute == .width && $0.relation == .equal
            })
        }
        set { setNeedsLayout() }
    }
    
    }
    

    You can use:

    yourView.heightConstraint?.constant = newValue 
    
    0 讨论(0)
提交回复
热议问题