我想将一个UIImageView解析为另一个,但控制进度(因此它会在用户平移手指时发生)。使用alpha
这很简单,因为我只是在用户平移时更改UIView的alpha值,但我不知道如何为溶解动画执行此操作,这与alpha更改略有不同。
答案 0 :(得分:1)
可以通过将一个图像放在另一个图像上并减少最顶层图像的alpha
来消除两个图像之间的动画。这可以在动画块中完成。
如果根据用户的平移手势改变溶解,可以写成如下方法:
- (void)setDissolveState:(CGFloat)state
{
self.imageTop.alpha = 1.0 - state;
// ensure bottom image is opaque, this can be done once
self.imageBottom.alpha = 1.0;
}
此处imageTop
和imageBottom
是UIImage处理pan事件的对象(例如视图控制器)的属性。当发现平移更改时,应使用触摸的相对位置调用方法setDissolveState:
:
CGFloat relativePosition = (touchLocation.x - self.view.frame.origin.x) / self.view.frame.size.width;
[self setDissolveState:relativePosition];