绘图 - 6
2015-12-11 21:48
363 查看
上一篇章用了一个例子,并没有分析这个例子的作用:
效果:
非常适合做遮挡层的dim。阴暗色,当然你需要什么颜色google即可。
首先的:
CGContextSaveGState 直面意义的保存上下文的状态,是通过将当前的图形状态压入图形状态栈。
紧接着这个方法的有另外一个形式上相似的方法:
这个理所当然是将栈中的存储的状态弹出。
而这两个通常一对使用。
具体参考:
http://wsqwsq000.iteye.com/blog/1316277
说到这两个就不得不提另外两个非常相似的方法:
看前缀就知道是另外的库的,这里还是将重心留到CG的方面。
http://blog.csdn.net/lihangqw/article/details/9969961
另外还有这个封装了颜色信息的结构体。
google一下就可以知道是关于渐变色的信息:
http://www.jianshu.com/p/f80ef6219d6b http://www.cnblogs.com/pengyingh/articles/2378840.html
有几种创建的方式,其中RGB方式:
同理:
这都是关于色彩的,用的时候查即可。
上面简单地介绍了一下几个绘图用到的类、结构体、方法,2D绘图库提供的方法远远不止那么少,请大家多多查阅!
- (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSaveGState(context); size_t gradLocationsNum = 2; CGFloat gradLocations[2] = {0.0f, 1.0f}; CGFloat gradColors[8] = {0, 0, 0, 0.3, 0, 0, 0, 0.8}; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, gradColors, gradLocations, gradLocationsNum); CGColorSpaceRelease(colorSpace), colorSpace = NULL; CGPoint gradCenter= CGPointMake(round(CGRectGetMidX(self.bounds)), round(CGRectGetMidY(self.bounds))); CGFloat gradRadius = MAX(CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds)); CGContextDrawRadialGradient(context, gradient, gradCenter, 0, gradCenter, gradRadius, kCGGradientDrawsAfterEndLocation); CGGradientRelease(gradient), gradient = NULL; CGContextRestoreGState(context); }
效果:
非常适合做遮挡层的dim。阴暗色,当然你需要什么颜色google即可。
首先的:
/* Push a copy of the current graphics state onto the graphics state stack. Note that the path is not considered part of the graphics state, and is not saved. */ CG_EXTERN void CGContextSaveGState(CGContextRef __nullable c) CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
CGContextSaveGState 直面意义的保存上下文的状态,是通过将当前的图形状态压入图形状态栈。
紧接着这个方法的有另外一个形式上相似的方法:
/* Restore the current graphics state from the one on the top of the graphics state stack, popping the graphics state stack in the process. */ CG_EXTERN void CGContextRestoreGState(CGContextRef __nullable c) CG_AVAILABLE_STARTING(__MAC_10_0, __IPHONE_2_0);
这个理所当然是将栈中的存储的状态弹出。
而这两个通常一对使用。
具体参考:
http://wsqwsq000.iteye.com/blog/1316277
说到这两个就不得不提另外两个非常相似的方法:
UIKIT_EXTERN void UIGraphicsPushContext(CGContextRef context); UIKIT_EXTERN void UIGraphicsPopContext(void);
看前缀就知道是另外的库的,这里还是将重心留到CG的方面。
http://blog.csdn.net/lihangqw/article/details/9969961
typedef struct CGColorSpace *CGColorSpaceRef;
另外还有这个封装了颜色信息的结构体。
google一下就可以知道是关于渐变色的信息:
http://www.jianshu.com/p/f80ef6219d6b http://www.cnblogs.com/pengyingh/articles/2378840.html
有几种创建的方式,其中RGB方式:
</pre><pre name="code" class="objc">CG_EXTERN CGColorSpaceRef __nullable CGColorSpaceCreateDeviceRGB(void)
同理:
typedef struct CGGradient *CGGradientRef;
这都是关于色彩的,用的时候查即可。
上面简单地介绍了一下几个绘图用到的类、结构体、方法,2D绘图库提供的方法远远不止那么少,请大家多多查阅!
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器