[英]UIView Background Image Transparency Problem
我添加了一個帶有 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 都有同樣的問題。
由於這是添加的最后一個視圖,我希望它的 az index 高於所有其他視圖,因此其他視圖應該通過透明區域顯示。 這是行不通的。
我注意到這在 iOS 4.3.x 上的行為與 5.0.x 不同。 在 4.3.x 中,我必須將 opaque 設置為 YES,然后設置背景圖像,然后將其設置回 NO。
老問題,但是:您的透明度是否有可能是黑色的,而不是實際上是透明的? 並不是說我只是那樣做或任何事情。
(繪制工具欄圖標時,iOS 用白色填充任何像素,包括黑色像素。確保在您期望的透明區域實際上沒有任何內容。)
將視圖的屬性 opaque 設置為 no。 像這樣 [查看 setOpaque:NO];
失敗的 setOpaque:NO... 檢查您的圖像是否正確導出並且沒有損壞等.. 曾經發生在我身上
創建一個 UIImageView 透明背景顏色和您的徽標作為其圖像,並添加:
UIImageView *logoView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"Logo.png"]];
logoView.backgroundColor = [UIColor clearColor];
[self.view addSubview:logoView];
這應該有效。
#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];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.