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];