我想通过动画使UIImageView的宽度更大。我在故事板上制作了UIView和UIImageView。我想要实现的是看起来视图从左到右缩放,并保持其原始位置。我尝试了下面的代码,但它的作用是从其父视图的左上角动画化imageview并移动和缩放它直到它到达位置并从头开始缩放。
[UIView animateWithDuration:4.0f delay:1.0f options:UIViewAnimationCurveEaseOut animations:^{
CGRect currentFrame = self.imageview1.frame;
currentFrame.size.width = 150;
self.imageview1.frame = currentFrame;
}completion:nil];
为什么会出现这种行为?
答案 0 :(得分:0)
有点迟到的回答,但我解决了这个问题。如果启用了autolayout,似乎无法更改代码中的视图框架。相反,您需要设置视图的约束动画,您可以在故事板中设置它,然后像这样设置动画:
[self.view layoutIfNeeded];
[UIView animateWithDuration:0.3 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{
self.bottomViewY.constant = -196;
[self.view layoutIfNeeded];
} completion:nil];
self.bottomViewY是一个被指定为IBOulet的约束。您需要调用layoutIfNeeded,因为它将更新约束。