UIView背景图像透明度问题

时间:2011-07-04 07:04:58

标签: iphone ipad uiview transparency

我添加了一个带有PNG图像的子视图,该图像应该显示透明度,但是我的透明度应该是全黑的。

代码是:

- (void)viewDidLoad
{
    [super viewDidLoad];
    toolbar.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"BannerBackground.png"]];
    logoImage = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 120, 56)];
    logoImage.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Logo.png"]];
    [self.view addSubview:logoImage];

}

这是适用于iPad,iOS版本4.3的代码。我对模拟器和iPad都有同样的问题。

由于这是添加的最后一个视图,我希望它的z索引高于所有其他视图,因此其他视图应该通过透明区域显示。这不起作用。

6 个答案:

答案 0 :(得分:1)

I noticed this behaves differently on iOS 4.3.x than 5.0.x。在4.3.x中,我必须将opaque设置为YES,然后设置背景图像,然后将其设置为NO。

答案 1 :(得分:0)

将视图的属性设置为opaque为no。像这样[view setOpaque:NO];

答案 2 :(得分:0)

失败的setOpaque:不...检查你的图像是否正确导出而且没有损坏等...发生在我身上的一次

答案 3 :(得分:0)

使用透明backgroundColor创建一个UIImageView,并将您的徽标作为其图像,并添加:

UIImageView *logoView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"Logo.png"]];
logoView.backgroundColor = [UIColor clearColor];
[self.view addSubview:logoView];

答案 4 :(得分:0)

这应该有用。

#import <QuartzCore/QuartzCore.h>



logoImage = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 120, 56)];
logoImage.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Logo.png"]];
[logoImage.layer setOpaque:NO];
logoImage.opaque = NO;


[self.view addSubview:logoImage];

答案 5 :(得分:0)

老问题,但是:例如,你的透明度是否有可能是黑色而且实际上并不透明?不是说我只是那样做了。

(在绘制工具栏图标时,iOS会填充任何像素,包括黑色像素。请确保您的透明区域实际上没有。)