我正在努力使图像比较成为一种非常具体的方式。我将2 UIImageView
一个放在另一个上面,我有一条垂直线,你可以从左向右拖动。当用户拖动此行时,我需要顶视图为“透明”或裁剪直到该行。
我尝试使用裁剪,但它非常慢且不准确,在向后拖动线时无法进行裁剪。一些租约可以指向如何实现这一目标。
答案 0 :(得分:2)
这不是太难,但绝对不是直截了当的。我想我可以指出你正确的方向。
首先,您需要创建一个足够大的CAShapeLayer
来覆盖顶部UIImageView
。将此新遮罩图层设置为最顶层图像视图图层的mask
。
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.path = [UIBezierPath bezierPathWithRect:topImageView.bounds].CGPath;
topImageView.layer.mask = maskLayer;
现在,您需要更改position
maskLayer
以达到预期效果。我假设您正在使用UIPanGestureRecognizer
来处理从左到右拖动垂直线,反之亦然。在由手势识别器触发的方法中,您将检查translationInView
属性并使用它的x
值来更改遮罩层的position
。这将有效地让你用手指移动遮罩层,并开始隐藏顶部图像视图的一部分,并从下面显示底部图像。