有沒有辦法重疊2個或更多UIViews
與不同的背景顏色和阿爾法來給出另一種顏色的外觀?例如,在藍色UIView
之上放置一個紅色UIView
,以表示單品紅色UIView
。重疊UIViews的不同顏色和阿爾法
1
A
回答
2
在iOS上,如果所謂的「源代碼結束」模式,視圖是唯一的混合模式。
基本上RGB_result = RGB_back *(1 - Alpha_front)+ RGB_front * Alpha_front
因此紅(1,0,0)與在藍色的頂0.5阿爾法圖(0,0,1)的視圖將結果在暗紅色(0.5,0,0.5)
如果你需要一些其他的混合模式,考慮與CoreGraphics中繪製(如CGContextSetBlendMode
)
0
你可以使用alpha屬性,像這樣:
UIView *redView = [[UIView alloc] initWithFrame: CGRectMake(0,0,20,20)];
redView.backgroundColor = [UIColor redColor];
UIView *blueView = [[UIView alloc] initWithFrame: CGRectMake(0,0,20,20)];
blueView.backgroundColor = [UIColor blueColor];
blueView.alpha = 0.5;
[redView addSubview: blueView];
注意,這是得到自己想要使用的UIColor的RGB創建方法手動顏色在一個單一的視圖,從而實現更簡單:
UIView *magentaView = [[UIView alloc] initWithFrame: CGRectMake(0,0,20,20)];
UIColor *magenta = [UIColor colorWithRed: 1
green: 0
blue: 1
alpha: 1];
magentaView.backgroundColor = magenta;
RGB值介於0和1之間,注意(不是大多數通常指定的標準0 - > 255範圍)。 alpha值表示不透明度。
0
這給出了一個紫色的視圖,沒有問題。
- (void)viewDidLoad
{
[super viewDidLoad];
UIView *view1 = [[UIView alloc] initWithFrame:self.view.bounds];
view1.backgroundColor = [UIColor colorWithRed:1.f green:0.f blue:0.f alpha:0.5f];
[self.view addSubview:view1];
view1 = [[UIView alloc] initWithFrame:self.view.bounds];
view1.backgroundColor = [UIColor colorWithRed:0.f green:0.f blue:1.f alpha:0.5f];
[self.view addSubview:view1];
}
0
下面的方法爲我工作
- (void)viewDidLoad {
[super viewDidLoad];
CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeColor);
}
相關問題
- 1. UIViews,子視圖和阿爾法
- 2. 不同顏色的多邊形重疊
- 3. 重疊的UIViews
- 4. iOS:UIColor不尊重紅色,綠色,阿爾法,藍色。顯示其他顏色?
- 5. Stata重疊直方圖不同顏色重疊的位置
- 6. 軟硬度:阿爾法了alternatingRowColors顏色
- 7. 顏色重疊
- 8. OpenglES 2.0 PNG阿爾法紋理重疊
- 9. 設置顏色和阿爾法分別對正值和負值
- 10. 兩個UIViews重疊
- 11. 防止UIViews重疊
- 12. 重疊顏色中的R
- 13. 在不重疊的位置創建20個UIViews不重疊
- 14. Matlab文本框阿爾法不調整所有背景顏色
- 15. 不同顏色的SSRS邊框線不能正確重疊
- 16. 不同顏色的多邊形疊加
- 17. 文本和背景顏色重疊
- 18. 設置按鈕的文本顏色的阿爾法
- 19. UIViews不改變背景顏色
- 20. SVG堆疊元素顏色重疊
- 21. 獲取像素顏色的阿爾法混合
- 22. Android - 阿爾法通道上的可繪製濾鏡顏色
- 23. Unicode和:阿爾法:
- 24. RenderTarget2D色調所有阿爾法紫色
- 25. 用兩種緯度和經度的不同顏色重疊註釋引腳
- 26. 忽略某些顏色阿爾法混合
- 27. 顏色選擇器與阿爾法使用dat.gui(HTML5)
- 28. iOS 10自定義單元格顏色阿爾法被忽略
- 29. 填充不同的顏色不同的貝塞爾路徑
- 30. 不同顏色
你也可以用IB來做,很簡單:http://stackoverflow.com/questions/5795688/iphone-create-a-semi-transparent-rectangle-with-opaque-text – Daniel