现在我有一个 GA Gradient 图层,我已经在其中设置了颜色,但我想将颜色点设置为(而不是顶部中心,到左上角)和底部到(而不是底部中心到右下角) ) 只是为了稍微改变一下。想法?下面是到目前为止我得到的代码......我包含了核心动画,因为我是颜色之间的动画。
- (id)init { self = [super init]; UIView *gradientView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.w, self.h)]; [self addSubview:gradientView]; [self sendSubviewToBack:gradientView]; topColor = [UIColor colorWithRed:0.012 green:0.012 blue:0.012 alpha:1]; bottomColor = [UIColor colorWithRed:1.000 green:0.765 blue:0.235 alpha:1]; gradient = [CAGradientLayer layer]; gradient.frame = gradientView.frame; gradient.colors = [NSArray arrayWithObjects:(id)topColor.CGColor, (id)bottomColor.CGColor, nil]; gradient.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:0.7], nil]; [gradientView.layer addSublayer:gradient]; [self performSelector:@selector(animateColors) withObject:self afterDelay:2.0]; currentColorCount = 1; return self; }
在右边(我有什么)在左边(我想要什么)
a的startPoint和endPoint属性CAGradientLayer在“单位坐标系”中定义。在单位坐标系中:
startPoint
endPoint
CAGradientLayer
(0,0)
(1,1)
因此,按照您想要的方式排列渐变应该很简单:
gradient.startPoint = CGPoint.zero gradient.endPoint = CGPoint(x: 1, y: 1)