0

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

4

1 回答 1

2

这不是太难,但绝对不是直截了当的。我想我可以为您指明正确的方向。

首先,您需要创建一个CAShapeLayer足够大的以覆盖顶部UIImageView。将此新蒙版图层设置为mask最顶层图像视图的图层。

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.path = [UIBezierPath bezierPathWithRect:topImageView.bounds].CGPath;
topImageView.layer.mask = maskLayer;

现在您将需要更改positionofmaskLayer以达到预期的结果。我假设您正在使用 aUIPanGestureRecognizer来处理从左到右拖动垂直线,反之亦然。在手势识别器触发的方法中,您将检查translationInView属性并使用它的x值来更改position遮罩层。这将有效地让您用手指移动遮罩层,并开始隐藏顶部图像视图的部分,并让底部的图像从下方显示。

于 2012-09-09T16:04:10.793 回答