2015-02-12 18 views
1

我有一個UIView,它具有alpha值爲0.5和白色背景色的圖層。而且我需要有一個與白色相同的邊框,但alpha值爲1.不幸的是,AFAIK邊框的alpha值總是與bgcolor相同。所以我的問題是:如何使CALayer邊框alpha值與bgcolor不同

  1. 我可以使邊界的alpha與bgcolor不同嗎?
  2. 如果我不行,你有什麼建議怎麼做?

回答

1

我可以使邊界的alpha與bgcolor不同嗎?

是的。你可以這樣做:

CALayer * firstLayer = [[CALayer alloc] init]; 

[firstLayer setFrame:CGRectMake(100, 100, 100, 100)]; 

firstLayer.borderColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0].CGColor; 
firstLayer.borderWidth = 3.0f; 
firstLayer.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:0.5].CGColor; 

另一種方法是在另一個相同大小的圖層中有一個圖層。給外層的邊框厚度,並確保它的不透明度爲100%。第二層應該有分數不透明度:

CALayer * firstLayer = [[CALayer alloc] init]; 
CALayer * secondLayer = [[CALayer alloc] init]; 

[firstLayer setFrame:CGRectMake(100, 100, 100, 100)]; 
[secondLayer setFrame:CGRectMake(0, 0, 100, 100)]; 
[firstLayer addSublayer:secondLayer]; 

firstLayer.borderColor = [UIColor redColor].CGColor; 
firstLayer.borderWidth = 1.0f; 

secondLayer.backgroundColor = [UIColor redColor].CGColor; 
secondLayer.opacity = 0.8f; 

[self.view.layer addSublayer:firstLayer]; 
+0

感謝。這是一個更完整的答案。 – 2016-03-05 19:11:17

2

試試這個。這應該只改變邊框顏色和alpha。

[self.yourView.layer setBorderColor:[UIColor colorWithRed: 0.0 green: 0.0 blue: 0.0 alpha:1.0].CGColor];您當然可以將RGB值更改爲任何您需要的值。

1

只需使用:

view.layer.borderColor = [[UIColor redColor] colorWithAlphaComponent:0.6].CGColor; 
view.backgroundColor = [[UIColor blueColor] colorWithAlphaComponent:0.2]; 
相關問題