在我的应用程序中,我有一个故事板,我使用“autolayout”选项;问题是如果我以这种方式用动画移动一些UIImageView:
[UIView animateWithDuration:1.0 animations:^{
[image setCenter:CGPointMake(300,200)];
}];
当动画完成图像返回原始位置时,为什么???如果我没有检查autolayout选项它工作正常。 你能告诉我是否可以使用autolayout管理动画吗?那有什么办法呢?
答案 0 :(得分:1)
AUTOLAYOUT的第一个规则! 您无法使用AutoLayout更改视图的框架或中心。
要为视图设置动画,您必须设置一个约束,您将使用该约束为其设置动画,然后更改约束。
即
self.heightConstraint = [NSLayoutConstraint constraintWithItem:self.theView
attribute:
relatedBy:
toItem:
attribute:
multiplier:
constant:];
// set up the rest
[self.view addConstraint:self.heightConstraint];
然后给它制作动画......
self.heightConstraint.constant = 20;
[UIView animateWithDuration:2.0
animations:^() {
[self.view layoutIfNeeded];
}];