我目前正在尝试将包含UIView
动画的UILabel
设为新尺寸。但这样做我在理解我的观点中真正发生的事情时遇到了一些麻烦。我读了一些关于它的帖子,但我仍然不清楚到底发生了什么。
在我的按钮中,我添加了一些只是右边约束大小的东西:
[superView layoutIfNeeded];
rightConst.constant *= 2;
[UIView animateWithDuration:3
animations:^{
[superView layoutIfNeeded];
} completion:nil];
superView作为视图我想要制作动画并将右边的约束对齐。
但这样做,动画开始但实际上是从左边开始。我不明白这一部分。我的目标是在视图的右侧设置动画以显示调整大小,也可以显示视图的底部,但左上角应该是固定的。
感谢。
答案 0 :(得分:-1)
如此document中所述,如果您致电[aView layoutSubviews]
,则会强制aView
的子视图布局,但不会强制aView
本身的布局。
您需要调用要设置动画的视图的superview的layoutSubviews。在这种情况下,两个标签的超级视图的超级视图。
解决方案就在这里
UIView *theView;
// theView is the superview of the superview of the two labels.
theView = superView.superview;
[theView layoutIfNeeded];
rightConst.constant *= 2;
[UIView animateWithDuration:3
animations:^{
[theView layoutIfNeeded];
} completion:nil];