Ios 使UIView前景透明

Ios 使UIView前景透明,ios,objective-c,uiview,drawrect,Ios,Objective C,Uiview,Drawrect,我正在修改一个IOS应用程序以允许添加一个额外的背景层。所有现有的覆盖都是UIImageViews,可以很好地处理透明度 现有背景是主视图ui。我想将黑色背景更改为透明,以放置另一个视图。它不起作用。最简单的代码不能像我希望的那样工作,如下所示: # import "TestUIView.h" @implementation TestUIView - (void)drawRect:(CGRect)rect { self.opaque = NO; [self setBackgr

我正在修改一个IOS应用程序以允许添加一个额外的背景层。所有现有的覆盖都是
UIImageViews
,可以很好地处理
透明度

现有背景是主视图
ui
。我想将黑色背景更改为透明,以放置另一个视图。它不起作用。最简单的代码不能像我希望的那样工作,如下所示:

# import "TestUIView.h"
@implementation TestUIView

- (void)drawRect:(CGRect)rect {

    self.opaque = NO;
    [self setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0]];
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 0,0,0,0);
    CGContextFillRect(context, rect);
// and here goes my code where I draw to the transparent background
}
@end
执行此操作时,将生成一个黑色矩形。我已将其背景设置为透明,并用透明填充其前景。我需要做什么才能获得一个
ui视图
,在那里我可以在透明的背景下画画

(我知道我可以改变整个视图的
alpha
,这不是问题所在。我希望在真正透明的背景上绘制不透明的图形)

更新:它不在setbackgroundcolor中,我很感激它不是必需的,所以不应该在那里,但是如果它被注释掉,同样的事情也会发生。我不能在透明的背景下画画;上面的代码显示,我甚至不能绘制一个透明的矩形


谢谢

默认情况下,
不透明
的值为
。此外,如果将alpha设置为0,则用户将完全看不到该视图。如果希望具有透明度,则需要alpha值大于0且小于1

另外,
backgroundColor
属性用于设置视图的颜色,而不是自己绘制该颜色

如果需要在
drawRect
中更改背景色,则必须自己绘制:

self.backgroundColor=yourColorWithSomeAlphaValue;//
[self.backgroundColor setFill];
CGContextFillRect(UIGraphicsGetCurrentContext(), rect);

更多解释见

请尝试yourview.backgroundColor=[[UIColor blackColor]colorWithComponent:0.5];如果alpha为0,则什么也看不到。那么你期待什么呢?默认情况下,opue是NO。搜索相同的,这正是我正在寻找的。谢谢,特克斯先生,如果我评论我的挫折,同样的事情也会发生。在这种情况下,我只是画了一个透明的矩形,除了它不是透明的,它是黑色的(它下面有一个模糊的UIView)。sry我没有得到u,发生了什么事?请不要使用
代码块
来强调,只用于代码。