0

我想要一个像附图一样的视图,整个视图的背景是半透明的,绿框里的视图是透明的。我尝试了 addSubview 并设置了 subview 的 alpha 但它不起作用。

在此处输入图像描述

4

3 回答 3

3

您可以覆盖您的 drawRect 方法。全部用半透明填充,然后用透明色填充透明部分:

- (void)drawRect:(CGRect)rect {
    // fill it all with translucent
    [yourTranslucentUIColor setFill];
    UIRectFill( rect );


    CGRect yourMiddleHoleRect = CGRectMake(* calculate your rect here);

    [[UIColor clearColor] setFill];
    UIRectFill( yourMiddleHoleRect );
}

我认为这会给你一个比其他选项更清晰的结果。

如果你愿意,你甚至可以在这里画出那些绿框指示器。

于 2013-06-04T04:29:25.813 回答
0

我相信实现这一目标的唯一方法是在透明视图周围添加 4 个半透明视图。

于 2013-06-04T04:24:32.470 回答
0

首先,您必须通过CGContextDrawImage在背景视图上添加半透明视图。然后使用CGContextSetBlendMode清除该部分。

请参考以下项目来实现这一点。

https://github.com/akopanev/iOS-Scratch-n-See

于 2013-06-04T04:50:11.900 回答