IOS_使用CGContextRef实现线性渐变和圆弧遮罩
来源:互联网 发布:音乐变成伴奏软件 编辑:程序博客网 时间:2024/04/29 01:00
本来再次来自本群 【天空air_as3_北京】 仰慕者可以给作者发email:paradiselwh154@gmail.com
顺便介绍我们的QQ群:241465868
源代码在此,请点击下载Demo
原理:使用了遮罩,核心就是:
CGImageRef mask = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext()); UIGraphicsEndImageContext(); CGContextClipToMask(ctx, self.bounds, mask); CGImageRelease(mask);
代码片段如下:
- (void)drawRect:(CGRect)rect{ [super drawRect:rect]; CGContextRef ctx = UIGraphicsGetCurrentContext(); UIGraphicsBeginImageContext(CGSizeMake(100,100)); CGContextRef imageCtx = UIGraphicsGetCurrentContext(); CGContextAddArc(imageCtx, self.frame.size.width/2 , self.frame.size.height/2, 25, 0, 2*M_PI, 0); [[UIColor redColor]set]; CGContextSetShadowWithColor(imageCtx, CGSizeMake(0, 0), 2*M_PI/20, [UIColor whiteColor].CGColor); CGContextSetLineWidth(imageCtx, 10); CGContextDrawPath(imageCtx, kCGPathStroke); CGImageRef mask = CGBitmapContextCreateImage(UIGraphicsGetCurrentContext()); UIGraphicsEndImageContext(); CGContextClipToMask(ctx, self.bounds, mask); CGImageRelease(mask); CGFloat components[8] = { 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0 }; CGColorSpaceRef cg = CGColorSpaceCreateDeviceRGB(); CGGradientRef gradient = CGGradientCreateWithColorComponents(cg, components, NULL, 2); CGColorSpaceRelease(cg), cg = NULL; CGPoint startPoint = CGPointMake(0, 0); CGPoint endPoint = CGPointMake(100, 100); CGContextDrawLinearGradient(ctx, gradient, startPoint, endPoint, 0); CGGradientRelease(gradient), gradient = NULL;}
运行结果如下:
小编:
已经是 【天空Air兄】的第三篇文了,你是要闹哪样。不过期待更全面讲解的博文,稍稍多写写理论,再附上Code就更完美了。
- IOS_使用CGContextRef实现线性渐变和圆弧遮罩
- 浅谈使用CSS遮罩与CSS线性渐变实现图片的斜线拼接
- Android实现圆弧形渐变色进度条
- css3渐变、线性渐变和径向渐变
- svgdom实现线性渐变
- LinearGradient实现线性渐变
- Android 实现渐变色的交替圆弧,显示进度百分比
- 使用CSS3线性渐变实现图片闪光划过效果
- css3 线性渐变和径向渐变样式
- css3 线性渐变和径向渐变
- CSS3的线性渐变 和 径向渐变。
- 线性渐变LinearGradient的使用
- CSS渐变效果的使用,线性渐变、径向渐变。
- CGContextRef使用
- siverlight使用渐变效果实现遮罩效果
- css3实现背景颜色线性渐变
- css3实现背景颜色线性渐变
- 垂直线性渐变:实现如下效果图
- 修改nginx和php-cgi的进程数
- struts2 at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java:209
- xcode&mac 快捷键
- 黑马程序员_毕向东_Java基础视频教程第02天
- POJ-1182-食物链
- IOS_使用CGContextRef实现线性渐变和圆弧遮罩
- 搬家过来了
- JAVA学习四:数组
- Hadoop新Mapreduce框架Yarn<转>
- MyEclipse自动生成Hibernate实体类, oracle篇
- UVA10185
- org.apache.commons.io Class FileUtils
- Spring3注解实例(一)
- 嵌入式系统的发展历史