CAGradientLayer

大美女
優(yōu)點(diǎn):
- 可生成兩種或更多種顏色平滑過(guò)渡效果
- 可通過(guò)Core Graphics拷貝CAGradientLayer的內(nèi)容到普通圖層 。
- CAGradientLayer使用硬件加速(硬件加速的好處無(wú)須多言)
__bridge
CF和OC對(duì)象轉(zhuǎn)化時(shí)只涉及對(duì)象類(lèi)型不涉及對(duì)象所有權(quán)的轉(zhuǎn)化
更多知識(shí):__bridge有關(guān)博客
1. 基礎(chǔ)漸變
(因?yàn)檎娴暮芎?jiǎn)單,所以看代碼比較直接)
- (void)viewDidLoad {
[super viewDidLoad];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.clipView.bounds;
[self.clipView.layer addSublayer:gradientLayer];
gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor blueColor].CGColor];
gradientLayer.startPoint = CGPointMake(0.5, 0);
gradientLayer.endPoint = CGPointMake(1, 1);
}

效果圖
2. 多重漸變
- (void)viewDidLoad {
[super viewDidLoad];
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.clipView.bounds;
[self.clipView.layer addSublayer:gradientLayer];
gradientLayer.colors = @[(__bridge id)[UIColor redColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor greenColor].CGColor];
gradientLayer.locations = @[@0.0,@0.25,@0.5]; //必須與colors數(shù)組數(shù)目一致
gradientLayer.startPoint = CGPointMake(0, 0);
gradientLayer.endPoint = CGPointMake(1, 1);
}

多重漸變