用掩模比较一个在另一个上面的图像

时间:2012-09-09 15:17:54

标签: objective-c ios xcode ipad

我正在努力使图像比较成为一种非常具体的方式。我将2 UIImageView一个放在另一个上面,我有一条垂直线,你可以从左向右拖动。当用户拖动此行时,我需要顶视图为“透明”或裁剪直到该行。 我尝试使用裁剪,但它非常慢且不准确,在向后拖动线时无法进行裁剪。一些租约可以指向如何实现这一目标。

1 个答案:

答案 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。这将有效地让你用手指移动遮罩层,并开始隐藏顶部图像视图的一部分,并从下面显示底部图像。