Swift:如何调整UIView的大小并保持内容居中?

时间:2015-03-21 02:28:37

标签: swift uiview resize frame center

我的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)的错误?

1 个答案:

答案 0 :(得分:2)

通过在动画中的动画视图上调用layoutIfNeeded,我获得了好运。

最好为视图的高度约束创建一个出口,然后设置该约束的constant而不是构建CGRect。如this answer中所示,更改动画外部的常量。