這個想法是顯示一個進度對話框。 我試圖用一個透明的黑色視圖(alpha 0.2)來覆蓋父視圖(通常是整個屏幕)。最重要的是,我想展示一個更小的視圖,同時透明與另一種顏色。它可能不受第一視圖的顏色或透明度的影響。 在第二個視圖中我想要不透明的UI元素。 我已經嘗試了一切,甚至發現這裏處理類似的東西,但只使用一個透明層的帖子。而那些已經使用奇怪的技巧。 有沒有一個標準的,簡單的方法來實現這一目標?具有非透明內容的另一個透明UIView的透明視圖?
6
A
回答
3
我找到了答案在博客:http://cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html
的解決方案是重寫drawRect:
和照顧α的吧。您可能無法觸摸UIView's
alpha屬性,也不能將視圖的背景顏色設置爲透明。所有圖紙都必須在drawRect:.
中這樣我就可以堆疊透明視圖並將不透明元素放在頂部。
1
將您的不透明視圖添加爲透明視圖的子視圖將不起作用。我過去所做的是有一個UIView
類,它添加了一個半透明的子視圖和一個不透明的子視圖。這樣透明視圖不會影響不透明的視圖。
9
沒有任何黑客周圍或複雜的,可能緩慢定製drawRect:
,這是可能的,如果你組的意見吧:
創建包含並保持整個對話的邊界視圖。該視圖本身沒有可見的內容,並且其背景顏色清晰。它的alpha是1.0。
現在將所有透明視圖(包含alpha < 1)的透明視圖添加到您需要的視圖中,並添加非透明視圖。注意不要將任何非透明視圖添加爲透明視圖的子視圖,而應將其添加爲邊界視圖的直接子視圖。這樣,他們將繼承1.0的alpha。
UIView *progressDialogView = [[UIView alloc] initWithFrame:dialogFrame];
progressDialogView.backgroundColor = [UIColor clearColor];
progressDialogView.alpha = 1.0; //you can leave this line out, since this is the default.
UIView *halfTransparentBackgroundView = [[UIView alloc] initWithFrame:dialogFrame];
halfTransparentBackgroundView.backgroundColor = [UIColor blackColor]; //or whatever...
halfTransparentBackgroundView.alpha = 0.5;
[progressDialogView addSubview: halfTransparentBackgroundView];
UIView *progressBarView = [[UIView alloc] initWithFrame:progressBarFrame];
progressBarView.backgroundColor = [UIColor blueColor];
[progressDialogView addSubview: progressBarView];
5
而不是設置alpha屬性,使用下面的設置背景顏色/不透明度爲每個視圖:
view1.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.3];
使用任何值,你的願望的紅,綠,藍和alpha。
2
我需要在另一個視圖頂部有透明視圖。視圖,使透明我只是做:
self.alpha = 0.5;
例如:
- (void) configureView
{
self.frame = CGRectMake(0, 0, 640, 960);
self.backgroundColor = [UIColor greyColor];
self.alpha = 0.5;
}
相關問題
- 1. 透明div內的非透明div
- 2. 通過不透明父項透明內部div非透明
- 3. iPhone SDK:透明視圖中的非透明子視圖
- 4. 透明滾動視圖上的非透明按鈕有問題
- 5. 在視圖中具有非透明文本的透明背景圖像
- 6. 使UIView透明
- 7. 透明父母的非透明子女
- 8. 透明視圖?
- 9. Java:具有非透明組件的透明Windows?
- 10. 將透明圖像複製到另一個透明圖像
- 11. 在另一個透明圖像上移動透明圖像
- 12. 在透明窗口上繪製非透明內容
- 13. OpenGL的透明/半透明
- 14. WPF透明度和透明和非透明
- 15. 非透明圖像
- 16. 如何使用非透明邊框創建透明UIView
- 17. 我如何將不透明UIView作爲半透明UIView的子視圖?
- 18. Android的透明圖片不是透明
- 19. Matplotlib:繪製具有不透明邊緣的透明直方圖
- 20. iOS如何使透明視圖的子視圖不透明?
- 21. UITapGestureRecognizer透明視圖
- 22. 透明圖像搞亂透明圖像
- 23. 透明背景透明圖像問題
- 24. 圖形不會透明透明JPanel
- 25. 使KML/KMZ圖層透明/不透明
- 26. 如何在透明窗口中繪製透明的DirectX內容?
- 27. iphone:使視圖透明,但子視圖不透明
- 28. UIView和子視圖 - 不透明度
- 29. 透明部分的視圖?
- 30. 創建一個透明的UIview
我知道, 「絕招」。但是,如果你想在一個更透明的視圖上放置一個半透明的視圖,並且它上面的按鈕都是不透明的,那麼它就變得困難起來。所以我很滿意我在自己的答案中引用的博客中找到的代碼。它根本不使用Alpha值。 – Krumelur 2012-01-17 16:11:41
它如何變得複雜?我認爲這種方式非常整潔,易於掌握。 – fzwo 2012-01-17 16:45:38
複雜化的方式是,您始終需要兩個視圖,只有一個透明且非透明的內容在頂部。這就是爲什麼我更喜歡其他解決方案。 – Krumelur 2012-01-18 08:59:09