iphone sdk透明子视图背景

iphone sdk透明子视图背景,iphone,uiview,transparent,Iphone,Uiview,Transparent,我有一个带图片的主视图 我正在尝试使用[self.view addSubview:view2]添加子视图但我希望view2背景是透明的。已尝试将不透明=否和背景色设置为clearcolor,并尝试将uiview子类化并使用以下内容重写drawrect: #import "TransparentView.h" @implementation TransparentView - (id)initWithFrame:(CGRect)frame { if (self = [super i

我有一个带图片的主视图

我正在尝试使用
[self.view addSubview:view2]添加子视图但我希望view2背景是透明的。已尝试将不透明=否和背景色设置为clearcolor,并尝试将uiview子类化并使用以下内容重写drawrect:

#import "TransparentView.h"


@implementation TransparentView

- (id)initWithFrame:(CGRect)frame 
{
    if (self = [super initWithFrame:frame]) {
        [self setBackgroundColor:[UIColor clearColor]];
        self.opaque=NO;
        self.clearsContextBeforeDrawing=YES;
    }
    return self;
}

- (void)drawRect:(CGRect)rect 
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextClearRect(context, rect);

    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
    CGContextFillRect(context, rect);
}


@end

但仍然不显示透明子视图的背景。。。有什么想法吗

尝试使用0.0作为Alpha为子视图的背景着色。这应该使它完全透明

大概是这样的:

UIColor *myUIColor = [UIColor colorWithRed: 1.0 green: 1.0 blue: 1.0 alpha:0.0];
尝试:


是否从nib文件加载视图?如果是,则不会调用
-initWithFrame:
<代码>-initWithCoder:
将被调用。执行此初始化的更好位置可能是
-viewDidLoad
。但是,将背景色设置为
[UIColor clearColor]
肯定会奏效。

在函数中

- (void)drawRect:(CGRect)rect 
尝试更新

    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);

此链接可能对您有所帮助

我遇到过一些案例,
。。。addSubview:clearView]
似乎将
clearView
(WTF!)的背景色重置为不清晰的颜色。我加了一个

[clearView setBackgroundColor:nil];
在那之后的某个地方,它似乎有所帮助

  const CGFloat BACKGROUND_OPACITY = 0.85; //Note: update this value to what you need 
  CGContextSetRGBFillColor(context, 1, 1, 1, BACKGROUND_OPACITY); // You can change 1,1,1 to the needed values
[clearView setBackgroundColor:nil];