我有一个复杂的自动布局,需要通过删除旧约束并添加新约束来适应旋转。
我在containerView
内有一个视图的网格布局。
问题在于我打电话
[UIView animateWithDuration:0.4 animations:^{
[self.containerView layoutIfNeeded];
}];
视图总是从位置[0,0]动画到新位置。我更喜欢的是视图将从旧位置(在我删除约束之前)移动到新位置(在删除和添加新约束之后)
是否有人能够实现这一目标?
答案 0 :(得分:1)
以下post给了我提示让它发挥作用:
但不是实际接受的答案,而是:
[UIView animateWithDuration:1.0f delay:0.0f options:UIViewAnimationOptionLayoutSubviews animations:^{
[self.view layoutIfNeeded];
} completion:nil];
可选参数options:UIViewAnimationOptionLayoutSubviews
让我尝试了不同的选项,所需的实际选项是options:UIViewAnimationOptionBeginFromCurrentState
[UIView animateWithDuration:duration delay:delay options:UIViewAnimationOptionBeginFromCurrentState animations:^{
[self layoutIfNeeded];
} completion:nil];
允许动画从最后一个位置发生,即使删除了约束并添加了新约束。