[英]How to remove gray color effect when touch move using objective c
加载时我将图像转换为全灰色,但是当触摸移动并查看原始图像颜色时,我想从图像中移除灰色。
我想知道如何在用户将手指移到图像上时从灰色效果转换为原始图像以及如何从原始图像转换为灰色。
我的解决方案如下。
您需要两个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
希望能对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.