@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()
})