iOS 缩小动画

iOS scale down animation

我试图在用户点击圆形轮廓图像视图时放大它,然后当他点击屏幕上的其他任何地方时,图像视图必须恢复到正常大小。必须在两个方向上缩放动画。

这是我用来放大图像视图的代码:

    CGRect frame = CGRectMake(0, 0, 200, 200);
    imageView.frame = frame;
    imageView.transform = CGAffineTransformMakeScale(0, 0);
    [UIView animateWithDuration:0.5 animations:^{
        imageView.transform = CGAffineTransformMakeScale(1, 1);
    }];

恢复正常大小的代码:

    CGRect frame = CGRectMake(0, 0, 50, 50);
    imageView.frame = frame;
    imageView.transform = CGAffineTransformMakeScale(1, 1);
    [UIView animateWithDuration:0.5 animations:^{
        imageView.transform = CGAffineTransformMakeScale(0, 0);
    }];

放大时效果很好,但缩小时没有动画效果。它就这样消失了。有人可以帮忙吗?

在第二个动画中试试这个:

CGRect frame = CGRectMake(0, 0, 50, 50);
self.imageView.frame = frame;
self.imageView.transform = CGAffineTransformMakeScale(4, 4);
[UIView animateWithDuration:0.5 animations:^{

        self.imageView.transform = .identity
}];

尝试不设置图像视图的框架,而是像这样设置变换以展开:

[UIView animateWithDuration:0.5 animations:^{
        _settingsProfilePlaceholderImageView.transform = CGAffineTransformMakeScale(2, 2);
    }];

签约:

[UIView animateWithDuration:0.5 animations:^{
        _settingsProfilePlaceholderImageView.transform = CGAffineTransformMakeScale(1, 1);
    }];