我有一個UIView,它具有alpha值爲0.5和白色背景色的圖層。而且我需要有一個與白色相同的邊框,但alpha值爲1.不幸的是,AFAIK邊框的alpha值總是與bgcolor相同。所以我的問題是:如何使CALayer邊框alpha值與bgcolor不同
- 我可以使邊界的alpha與bgcolor不同嗎?
- 如果我不行,你有什麼建議怎麼做?
我有一個UIView,它具有alpha值爲0.5和白色背景色的圖層。而且我需要有一個與白色相同的邊框,但alpha值爲1.不幸的是,AFAIK邊框的alpha值總是與bgcolor相同。所以我的問題是:如何使CALayer邊框alpha值與bgcolor不同
我可以使邊界的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];
試試這個。這應該只改變邊框顏色和alpha。
[self.yourView.layer setBorderColor:[UIColor colorWithRed: 0.0 green: 0.0 blue: 0.0 alpha:1.0].CGColor];
您當然可以將RGB值更改爲任何您需要的值。
只需使用:
view.layer.borderColor = [[UIColor redColor] colorWithAlphaComponent:0.6].CGColor;
view.backgroundColor = [[UIColor blueColor] colorWithAlphaComponent:0.2];
感謝。這是一個更完整的答案。 – 2016-03-05 19:11:17