【发布时间】:2017-03-31 22:33:09
【问题描述】:
我想创建一个图层来充当我在界面生成器中创建的 UIImageView 的蒙版。但是,无论我做什么,图层都保持白色。代码非常简单,有什么想法会导致这种行为吗?
UIImage* image = [UIImage imageNamed:@"face"];
self.imageView.image = image;
CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
maskLayer.frame = self.imageView.bounds;
maskLayer.fillColor = [[UIColor blackColor] CGColor];
maskLayer.path = CGPathCreateWithRect(self.imageView.bounds, NULL);
self.imageView.layer.mask = maskLayer;
self.maskLayer = maskLayer;
我编辑了代码并添加了路径,但它仍然不起作用。
【问题讨论】:
-
这不是重复的,我的代码与其他帖子基本相同,只是我在界面构建器中使用了 UIImageView。有一个很大的不同,与其他帖子不同......我的不起作用,我试图找出原因
-
您最初提出的问题没有设置路径。在我将其标记为重复后,您进行了编辑以添加路径。现在是一个不同的问题 - 重新打开。
-
您期望达到什么结果? “它仍然不起作用”不是解释。您正在做的事情似乎很奇怪,所以我无法猜出您的意思要做什么。
-
我正在尝试实现 Rob 在这篇文章中提供代码的确切效果:stackoverflow.com/questions/20165906/… 但我想制作黑色半透明颜色而不是白色蒙版。出于某种原因,我尝试的所有操作都不会将白色蒙版图层更改为白色以外的颜色。我试图用上面的代码来简化它,只创建一个彩色蒙版,这样我就可以在将它集成到 Rob 的代码中之前了解如何做到这一点。
-
“但我想制作黑色半透明颜色而不是白色蒙版”这没有任何意义。面具没有颜色。它只是或多或少地在视图中打了一个洞。没有所谓的“彩色面具”。 — 这可能就是我们所说的 x-y 问题:您没有问如何为图像视图着色,而是假设您知道蒙版是什么并且蒙版可以做到这一点,并提出了一个有关蒙版的问题。我已经回答了,描述了我认为您对此事的误解。
标签: ios objective-c mask cashapelayer