尝试使用Swift 3为NSLayoutConstraint设置动画

时间:2017-01-09 04:38:52

标签: xcode uiview uiscrollview swift3 nslayoutconstraint

我试图为约束设置动画,但它似乎影响了整个视图。这是我用来为约束设置动画的代码。

@IBOutlet weak var personHeight: NSLayoutConstraint!

func animateBackgroundHeight() {
print("animate")
UIView.animate(withDuration: 5.0, animations: {
    self.personHeight.constant = 19 // personHeight is the IBOutlet to the constraint
    self.view.layoutIfNeeded()
})

}

当动画进行时,视图中的所有内容都会移动,但我不确定原因。我想要设置动画的是视图的高度,但不影响TextField或按钮。可以将GreyView视为TextField的背景元素。

这是一张图片,向您展示我试图制作动画的约束(绿色)

粉红色框表示父视图。 灰盒子是我试图动画高度的视图。 TextField和按钮位于Gray Box对象上方。

enter image description here

1 个答案:

答案 0 :(得分:0)

毕竟,您可能会为错误的视图设置动画 所以要明确你的问题 如果你有嵌套在另一个视图中的x视图 并希望仅为x视图设置动画 那么你应该 制作

self.x.layoutIfNeeded()

而不是

self.view.layoutIfNeeded()