一看就懂demo下載地址:github
? CAGradientLayer,文檔介紹很簡(jiǎn)單愧哟,在背景色上繪制漸變色似谁,填滿layer。API里只有5個(gè)屬性:colors(用作漸變的顏色數(shù)組)东帅、locations(用作分界的位置數(shù)組)压固、endpoint(漸變結(jié)束位置)、startpoint(漸變開始位置)靠闭、type(表示像素變化方式帐我,只有一個(gè)值)。
代碼實(shí)例:
1先創(chuàng)建一個(gè)label
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 200, 200, 28)];
label.text = @"大家快看漸變色";
[self.view addSubview:label];
2創(chuàng)建layer
CAGradientLayer *layer = [CAGradientLayer layer];
layer.frame = label.bounds;
layer.colors = @[(__bridge id)[UIColor redColor].CGColor,
(__bridge id)[UIColor greenColor].CGColor,
(__bridge id)[UIColor blackColor].CGColor,
(__bridge id)[UIColor whiteColor].CGColor,
(__bridge id)[UIColor blueColor].CGColor
];
layer.locations = @[@(0.2), @(0.35),@(0.5),@(0.65),@(0.7)];
layer.startPoint = CGPointMake(0, 0);
layer.endPoint = CGPointMake(1, 1);
layer.type = kCAGradientLayerAxial;
layer.bounds = CGRectMake(0, 0, 400, 400);
layer.position = CGPointMake(200, 340);
layer.mask = label.layer;
[self.view.layer addSublayer:layer];
? 這兩步實(shí)現(xiàn)原理是先創(chuàng)建一個(gè)label負(fù)責(zé)顯示文字愧膀,再創(chuàng)建一個(gè)layer負(fù)責(zé)顯示漸變色拦键,然后最后把layer覆蓋在label上,所以兩個(gè)的frame要設(shè)置準(zhǔn)確扇调,不然會(huì)顯示空白,最終出來的效果就是有漸變色的文字