2011-07-04 117 views
2

我添加了一个应该用透明度显示的PNG图像的子视图,但是我在透明度应该是全黑的地方。UIView背景图像透明度问题

的代码是:

- (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索引高于其他所有视图,所以其他视图应该通过透明区域显示。这不起作用。

+0

我已经得到了同样的问题一些透明图像。这似乎是一个无证的iOS 4.3错误。 : - /我可以在模拟器上进行复制,但不能在设备上进行复制,因为我没有任何运行4.3的设备进行测试。 你有没有找到解决这个问题的办法? –

回答

0

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

+0

我尝试了上面的建议,然后尝试从网页中的PNG,我知道图像透明度正在工作。还是行不通。 – Jim

0

失败setOpaque:NO ...请检查您的图像正确导出和未损坏等。发生在我身上一次

+1

谢谢。我试过这个,但没有奏效。还有其他的错误。 – Jim

0

创建透明的backgroundColor和您的徽标作为其图像一个UIImageView,并补充说:

UIImageView *logoView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"Logo.png"]]; 
logoView.backgroundColor = [UIColor clearColor]; 
[self.view addSubview:logoView]; 
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]; 
0

旧的问题,但:你的透明度,例如,黑色,而不是实际上透明的任何机会?并不是说我只是做了那件事或任何事情。

(当绘图工具栏图标,iOS的填充任何像素,包括黑色的,有白色的,请确保实际上没有什么,你希望你的透明区域是。)