CAGradientLayer 漸變圖層 CALayer子類(lèi)之一

漸變圖層(畫(huà)質(zhì)貌似與問(wèn)題).gif
CAGradientLayer 漸變圖層的幾大屬性
colors:漸變顏色的數(shù)組 -> id -> CGColor
locations:顏色漸變的 百分比 數(shù)組
startPoint 顏色漸變的起始點(diǎn)
endPoint 顏色漸變的終點(diǎn)
顏色會(huì)根據(jù) 設(shè)置的兩個(gè)點(diǎn)去變化
漸變圖層是根據(jù)colors數(shù)組中的顏色在圖層中根據(jù)漸變起始點(diǎn)一次分布在圖層中的,但是并不會(huì)出現(xiàn)上圖中一直變化的效果,這里我是使用了隨機(jī)函數(shù)以及定時(shí)器來(lái)達(dá)到這種效果。
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor blackColor];
UIImageView *imageView = [[UIImageView alloc]initWithFrame:self.view.frame];
imageView.image = [UIImage imageNamed:@"4"];
imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imageView];
//CAGradientLayer 漸變
// colors:漸變顏色的數(shù)組 -> id -> CGColor
// locations:顏色漸變的 百分比 數(shù)組
// startPoint 顏色漸變的起始點(diǎn)
// endPoint 顏色漸變的終點(diǎn)
// 顏色會(huì)根據(jù) 設(shè)置的兩個(gè)點(diǎn) 去變化
layer = [CAGradientLayer layer];
layer.frame = self.view.frame;
layer.opacity = 0.3;//透明度
// layer.colors = @[(id)[UIColor redColor].CGColor,(id)[UIColor orangeColor].CGColor,(id)[UIColor yellowColor].CGColor,(id)[UIColor greenColor].CGColor,(id)[UIColor cyanColor].CGColor,(id)[UIColor blueColor].CGColor,(id)[UIColor purpleColor].CGColor];
// layer.locations = @[];
layer.startPoint = CGPointMake(0, 0);
layer.endPoint = CGPointMake(1, 1);
[self.view.layer addSublayer:layer];
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(todo) userInfo:nil repeats:YES];
}
-(void)todo{
//設(shè)置隨機(jī)數(shù)
int a = arc4random()%7;
int b = arc4random()%7;
int c = arc4random()%7;
int d = arc4random()%7;
NSArray *col = @[(id)[UIColor redColor].CGColor,(id)[UIColor orangeColor].CGColor,(id)[UIColor yellowColor].CGColor,(id)[UIColor greenColor].CGColor,(id)[UIColor cyanColor].CGColor,(id)[UIColor blueColor].CGColor,(id)[UIColor purpleColor].CGColor];
//給漸變數(shù)組隨機(jī)的顏色值
layer.colors =@[col[a],col[b],col[c],col[d]];
NSLog(@"%ld%ld%ld%ld",a,b,c,d);
}