Ответ 1
Возьмите ограничение как IBOutlet
NSLayoutConstraint
.
Задайте выходы ограничения и измените значение constant
на:
self.sampleConstraint.constant = 20
self.view.layoutIfNeeded()
У меня есть прокрутка в виде @IBOutlet
@IBOutlet weak var mainScrollView: UIScrollView!
Я хочу изменить
"Bottom space to: Bottom Layout Guide"
программно.
First Item : Bottom Layout Guide.Top
Relation : Equal
Second Item: Scroll View.Bottom
Constant: 0 -> 50 // (I want to change this programmatically)
Priority: 1000
Multiplier: 1
Как я могу это сделать?
Возьмите ограничение как IBOutlet
NSLayoutConstraint
.
Задайте выходы ограничения и измените значение constant
на:
self.sampleConstraint.constant = 20
self.view.layoutIfNeeded()
Если вы добавляете ограничение программно следующим образом:
var constraintButton = NSLayoutConstraint (item: buttonPlay,
attribute: NSLayoutAttribute.Bottom,
relatedBy: NSLayoutRelation.Equal,
toItem: self.view,
attribute: NSLayoutAttribute.Bottom,
multiplier: 1,
constant: 0)
// Add the constraint to the view
self.view.addConstraint(constraintButton)
Затем вы можете обновить его следующим образом:
self.constraintButton.constant = 50
self.view.layoutIfNeeded()
И если вы хотите, чтобы с анимацией вы могли сделать это следующим образом:
self.view.layoutIfNeeded()
UIView.animateWithDuration(1, animations: {
self.constraintButton.constant = 50
self.view.layoutIfNeeded()
})
Надеюсь, что это поможет.
Создайте IBOutlet
для вашего ограничения:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomContraint;
И когда вам нужно изменить его, вызовите:
bottomContstraint.constant = //your value
view.layoutIfNeeded()
Также вы можете анимировать изменение ограничений следующим образом:
bottomContstraint.constant = //your value
UIView.animateWithDuration(0.5, animations: {
self.view.layoutIfNeeded()
})