UIImageView动画无法正常工作

时间:2012-10-14 10:48:31

标签: ios animation uiimageview scaling

我想通过动画使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];

为什么会出现这种行为?

1 个答案:

答案 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,因为它将更新约束。