0

我想通过动画使 UIImageView 的宽度变大。我在故事板中有一个 UIView 和 UIImageView 。我想要实现的是看起来视图从左到右缩放,并保持其原始位置。我已经尝试了以下代码,但它所做的是从其父视图的左上角为图像视图设置动画,并移动和缩放它,直到它到达从一开始就具有的位置和缩放。

[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];

有什么想法为什么会出现这种行为?

4

1 回答 1

0

答案有点晚,但我解决了问题。如果启用了自动布局,您似乎无法更改代码中的视图框架。相反,您需要为视图的约束设置动画,您可以在情节提要中设置它,然后像这样设置动画:

[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 因为它会更新约束。

于 2014-05-09T12:14:09.210 回答