31 core-animation ios cagradientlayer
现在我有一个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;
}
Run Code Online (Sandbox Code Playgroud)
在左边(我有什么)在左边(我想要的)
rob*_*off 109
该startPoint
和endPoint
的一个特性CAGradientLayer
是在"单元坐标系统"中所定义.在单位坐标系中:
(0,0)
对应于图层边界矩形的最小坐标,在iOS上是左上角,除非图层已被转换;(1,1)
对应于图层边界矩形的最大坐标,在iOS上是右下角,除非图层已经变换.因此,按照您想要的方式排列渐变应该是这么简单:
gradient.startPoint = CGPoint.zero
gradient.endPoint = CGPoint(x: 1, y: 1)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22820 次 |
最近记录: |