通过动画从A图像转换为B图像

时间:2012-01-19 16:15:29

标签: iphone objective-c ios

我有UIImageView的白色箭头图像。我动画它旋转90度。我还希望UIImageView在旋转时更改为黑色箭头图像。

我能想到的唯一解决方案是将两个图像叠加在一起,在旋转时动画两者并更改白色箭头图像的alpha(因此它会淡入淡出)。

有没有更简单的方法来获得这种效果?

是否存在转换效果的构建以淡出一个图像和另一个图像?

1 个答案:

答案 0 :(得分:1)

你似乎很清楚该怎么做。可能最简单的可重复方法是创建一个UIView子类并将两个箭头添加到它中。然后添加几个这样的函数。

-(void)rotate90{
    blackArrow.alpha = 0;
    [self bringSubviewToFront:blackArrow];
    [UIView animateWithDuration:1 animations:^{
        blackArrow.alpha = 1;
        blackArrow.transform = CGAffineTransformMakeRotation(M_PI_2);
        whiteArrow.transform = CGAffineTransformMakeRotation(M_PI_2);
    }];
}
-(void)rotate0{
    whiteArrow.alpha = 0;
    [self bringSubviewToFront:whiteArrow];
    [UIView animateWithDuration:1 animations:^{
        whiteArrow.alpha = 1;
        blackArrow.transform = CGAffineTransformMakeRotation(0);
        whiteArrow.transform = CGAffineTransformMakeRotation(0);
    }];
}