0

我有一个自定义形状的 UIView(见图),我想有时用黑色调暗那个视图。但是,仅拉下 alpha 对我不起作用,因为它使用了 dim 它。

所以我想在视图中添加一个具有相同形状的子视图,并使用 alpha 使视图变暗,所以它看起来像下气泡(见图)。如何复制视图的形状,是否需要再次对其进行子类化,或者是否有更简单的方法?

图片

4

3 回答 3

2

您正在绘制形状drawRect:。因此,只需用较深的颜色绘制它。给你的观点一个dimmed属性,例如

@property (nonatomic) BOOL dimmed;

像这样覆盖设置器:

- (void)setDimmed:(BOOL)dimmed {
    if (dimmed != _dimmed) {
        _dimmed = dimmed;
        [self setNeedsDisplay];
    }
}

然后检查属性drawRect:。如果已设置,请使用较深的颜色。否则,请使用较浅的颜色。

于 2012-12-01T08:54:37.923 回答
0

如果您不需要使用大量自定义创建的 UIView 来执行此操作,那么我能说的最简单的方法是将该形状放入 Photoshop 之类的图像编辑器中,用黑色填充,使其透明度约为 30-40 % 并将其覆盖在目标视图上。

于 2012-12-01T08:31:58.723 回答
0

最后,我通过在现有 UIView 之上绘制一个新的 UIView 并赋予它 40% 的黑色来解决它。因为我画了一次视图,所以我可以再画一次。

于 2012-12-08T21:08:39.793 回答