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