Вы имеете в виду несколько чередующихся градиентов?
CAGradientLayer использует собственный метод системы, добавив несколько CGColorRef
настроек, вы также можете установить их locations
(интервал), startPoint
endPoint
(направление). Это официальный документ
Если вы хотите добавить 5 пар желто-синих градиентов, вы должны сделать это:
UIView *cuntomView = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 275, 500)];
[self.view addSubview:cuntomView];
CAGradientLayer *gradLayer = [CAGradientLayer layer];
gradLayer.frame = cuntomView.bounds;
gradLayer.locations = @[@0,@0.1,@0.2,@0.3,@0.4,@0.5,@0.6,@0.7,@0.8,@0.9,@1];
gradLayer.colors = @[(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor];
[cuntomView.layer addSublayer:gradLayer];
Если вы хотите изменить направление градиента, вам следует добавить startPoint и endPoint к вашему коду.
UIView *cuntomView = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 275, 500)];
[self.view addSubview:cuntomView];
CAGradientLayer *gradLayer = [CAGradientLayer layer];
gradLayer.frame = cuntomView.bounds;
gradLayer.startPoint = CGPointMake(0, 0);
gradLayer.endPoint = CGPointMake(1, 1);
gradLayer.locations = @[@0,@0.1,@0.2,@0.3,@0.4,@0.5,@0.6,@0.7,@0.8,@0.9,@1];
gradLayer.colors = @[(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor];
[cuntomView.layer addSublayer:gradLayer];
Если вы хотите контролировать определенное положение градиента, вы должны установить значение в местах. :
UIView *cuntomView = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 275, 500)];
[self.view addSubview:cuntomView];
CAGradientLayer *gradLayer = [CAGradientLayer layer];
gradLayer.frame = cuntomView.bounds;
gradLayer.startPoint = CGPointMake(0, 0);
gradLayer.endPoint = CGPointMake(1, 1);
gradLayer.locations = @[@0,@0.05,@0.1,@0.15,@0.2,@0.25,@0.3,@0.35,@0.8,@0.9,@1];
gradLayer.colors = @[(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor,(__bridge id)[UIColor blueColor].CGColor,(__bridge id)[UIColor yellowColor].CGColor];
[cuntomView.layer addSublayer:gradLayer];