我在加载时将图像转换为完全灰色,但我想在触摸移动时删除它的灰色并查看原始图像颜色。
我想知道当用户将手指移到图像上时如何将灰色效果转换为原始图像以及如何从原始图像转换为灰色。
答案 0 :(得分:0)
我的解决方案如下。
您需要两个UIImageViews。在另一个上添加一个并使它们逐个像素重叠。您有两种选择:
两种解决方案从根本上都是一样的。您需要在最顶层的视图上使用遮罩。使用遮罩层时,白色区域将完全不透明,黑色为100%透明,灰色为半透明。
面具的例子:
CALayer *maskLayer = [CALayer layer];
UIImage *mask = [UIImage imageNamed:@"mask.png"];
maskLayer.contents = (id)mask.CGImage;
maskLayer.bounds = (CGRect){CGPointZero, mask.size};
UIImageView *viewToMask = ;
viewToMask.image = [UIImage imageNamed:@"blackandwhite.png"];
viewToMask.layer.mask = maskLayer;
[self.view addSubview:viewToMask];
当然,您必须在触摸/释放时添加/删除蒙版。我告诉你了。
现在当你移动手指时会发生什么?只需将面具移动到不同的位置,如下所示:
viewToMask.layer.mask.position = offset position based on touch position
我希望我能帮到你。