我的ViewController(" mainView")里面有一个UIView(" myUIView"),里面有一个UILabel(" myUILabel"),垂直居中,自动布局限制。我让这个UIView动画来改变它的高度。
最初,我认为自动布局会跟踪动画/更改并保持UILabel居中,但是UILabel的行为就好像它被限制在UIView的顶部。
UILabel不在动画代码中。代码参考:
UIView.animateWithDuration(currentAnimationTime, delay: 0.0, options: .CurveEaseOut, animations: {
self.myUIView.frame = CGRectMake(0, self.mainView.frame.height * 0.2, self.mainView.frame.width, self.mainView.frame.height * 0.6 )
}, completion: nil)
如何增加UIView的高度并保持我的UILabel垂直输入?我是否需要添加一些直接影响UILabel本身的东西,或者我是否会调整大小本身(CGRectMake)的错误?
答案 0 :(得分:2)
通过在动画中的动画视图上调用layoutIfNeeded
,我获得了好运。
最好为视图的高度约束创建一个出口,然后设置该约束的constant
而不是构建CGRect
。如this answer中所示,更改动画外部的常量。