CAGradientLayer
2014-07-08 15:07
176 查看
参考此处:http://www.cnblogs.com/YouXianMing/p/3793913.html#2977749
CAGradientLayer用一个简单的线性渐变覆盖它的背景。渐变定义和Core Graphic中的渐变一样,一个位置数组和一个对应的颜色数组,以及一个开始点和结束点。为了剪裁渐变,可以把一个遮罩(mask)添加到CAGradientLayer中。
Colors数组需要CGColor,不是UIColor。但是CGColorRef不是一个对象类型,而NSArray需要对象,所以为了通过编译,可能需要类型转换(为id),至少对数组的第一项进行转换。
![](http://img.blog.csdn.net/20140708153913421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDA4NDA4MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
补充:
CALayer Animation - Gradient Animation
CAGradientLayer用一个简单的线性渐变覆盖它的背景。渐变定义和Core Graphic中的渐变一样,一个位置数组和一个对应的颜色数组,以及一个开始点和结束点。为了剪裁渐变,可以把一个遮罩(mask)添加到CAGradientLayer中。
Colors数组需要CGColor,不是UIColor。但是CGColorRef不是一个对象类型,而NSArray需要对象,所以为了通过编译,可能需要类型转换(为id),至少对数组的第一项进行转换。
self.view.backgroundColor = [UIColor blackColor]; colorLayer = [CAGradientLayer layer]; colorLayer.backgroundColor = [UIColor blueColor].CGColor; colorLayer.frame = (CGRect){CGPointZero, CGSizeMake(200, 200)}; colorLayer.position = self.view.center; [self.view.layer addSublayer:colorLayer]; // 颜色分配 colorLayer.colors = @[(__bridge id)[UIColor redColor].CGColor, (__bridge id)[UIColor whiteColor].CGColor, (__bridge id)[UIColor redColor].CGColor]; colorLayer.locations = @[@(-0.2), @(-0.1), @(0)]; // 起始点 colorLayer.startPoint = CGPointMake(0, 0); // 结束点 colorLayer.endPoint = CGPointMake(1, 0); CAShapeLayer *circle = [ViewController LayerWithCircleCenter:CGPointMake(102, 100) radius:80 startAngle:DEGREES(0) endAngle:DEGREES(360) clockwise:YES lineDashPattern:nil]; circle.strokeColor = [UIColor redColor].CGColor; [self.view.layer addSublayer:circle]; circle.strokeEnd = 1.f; colorLayer.mask = circle; NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerMethod) userInfo:nil repeats:YES]; [timer fire];
- (void)timerMethod { static int i = 0; if (i++ % 2 == 0) { CABasicAnimation* fadeAnim = [CABasicAnimation animationWithKeyPath:@"locations"]; fadeAnim.fromValue = @[@(-0.2), @(-0.1), @(0)]; fadeAnim.toValue = @[@(1.0), @(1.1), @(1.2)]; fadeAnim.duration = 1.5; [colorLayer addAnimation:fadeAnim forKey:nil]; } }
补充:
CALayer Animation - Gradient Animation
相关文章推荐
- IOS_CAGradientLayer 实现渐变色
- ios绘图系列五:绘制渐变CGContextDrawLinearGradient, CGContextDrawRadialGradient, CAGradientLayer
- CAGradientLayer
- CAGradientLayer
- CAGradientLayer的一些属性解析
- CAGradientLayer颜色渐变
- iOS之view用CAGradientLayer实现渐变颜色
- iOS 绘图CAGradientLayer~demo
- UIView - CAGradientLayer
- CAShapeLayer和CAGradientLayer
- CAGradientLayer 颜色渐变实现进度条
- CAGradientLayer 初识
- iOS之UI--CAGradientLayer
- CAGradientLayer颜色的渐变(单色、多色、动画)
- swift开发中使用CAGradientLayer渲染导航栏背景色渐变
- iOS动画篇:利用CAGradientLayer实现动画
- CAGradientLayer简介
- CAGradientLayer可以方便的处理颜色渐变。
- CAGradientLayer 浅析
- IOS图层Layer学习笔记(七)—— CAGradientLayer