簡體   English   中英

UIView 背景圖片透明度問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM