J'ai une vue de défilement en tant que @IBOutlet
@IBOutlet weak var mainScrollView: UIScrollView!
Je veux changer le
"Bottom space to: Bottom Layout Guide"
contrainte par programme.
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
Comment puis-je faire ceci?
Prenez la contrainte comme IBOutlet
de NSLayoutConstraint
.
Définissez les sorties de contrainte et modifiez la valeur de constant
en:
self.sampleConstraint.constant = 20
self.view.layoutIfNeeded()
Si vous ajoutez une contrainte par programme comme ceci:
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)
Ensuite, vous pouvez le mettre à jour de cette façon:
self.constraintButton.constant = 50
self.view.layoutIfNeeded()
Et si vous le souhaitez avec l'animation, vous pouvez le faire de cette façon:
self.view.layoutIfNeeded()
UIView.animateWithDuration(1, animations: {
self.constraintButton.constant = 50
self.view.layoutIfNeeded()
})
J'espère que cela aide.
Créez un IBOutlet
pour votre contrainte:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomContraint;
Et lorsque vous devez le changer, appelez:
bottomContstraint.constant = //your value
view.layoutIfNeeded()
Vous pouvez également animer un changement de contrainte comme ça:
bottomContstraint.constant = //your value
UIView.animateWithDuration(0.5, animations: {
self.view.layoutIfNeeded()
})