1.CAGradientLayer
- 代码
1 | #define MF_ColorFromHex(c) [UIColor colorWithRed:((c>>16)&0xFF)/255.0f green:((c>>8)&0xFF)/255.0f blue:(c&0xFF)/255.0f alpha:1.0f] |
1 | //创建渐变层并添加到view的图层 |
- 效果
- 说明
CAGradientLayer是CALayer的一个子类,专门处理渐变效果,gradient就是渐变的意思。如果只是两种颜色的渐变可以不设置locations属性。颜色是16位颜色,所以需要用位移和与运算操作转换一下。
实际上CAGradientLayer是对Core Graphics的封装,底部实现是使用Core Graphics绘制。说法来自于iOS Core Animation Advanced Techniques (ios核心动画高级技巧)这本书。
2.Core Graphics绘制渐变
- 代码
1 | - (void)drawRect:(CGRect)rect { |
- 效果
- 说明
来源于iOS 编程(第四版),但是书上说,到目前为止还无法使用OC类绘制阴影和渐变。去查文档Core Graphics iOS2 就可以用,CALayer所属的QuartzCore应该是iOS3就出来了。这本书基于iOS7,竟然说没有OC类可以绘制,不知道为什么?顺便提一嘴,这本书还是不错的,新手向,可以查漏补缺,豆瓣评分挺高,京东有售。