CGContextRef用法

简介: <span style="font-size:24px">1、简介Quartz。Quartz 是主要的描画接口,支持基于路径的描画、抗锯齿渲染、渐变填充模式、图像、颜色、坐标空间变换、以及PDF 文档的创建、显示、和分析。UIKit 为Quartz 的图像和颜色操作提供了Objective-C 的封装。Core Animation 为很多UIKit 的视图属性声明的动画效果提供底层支持,也
1、简介Quartz。Quartz 是主要的描画接口,支持基于路径的描画、抗锯齿渲染、渐变填充模式、图像、颜色、坐标空间变换、以及PDF 文档的创建、显示、和分析。UIKit 为Quartz 的图像和颜色操作提供了Objective-C 的封装。Core Animation 为很多UIKit 的视图属性声明的动画效果提供底层支持,也可以用于实现定制的动画。在调用您提供的drawRect:方法之前,视图对象会自动配置其描画环境,使您的代码可以立即进行描画。作为这些配置的一部分,UIView 对象会为当前描画环境创建一个图形上下文(对应于CGContextRef 封装类型)用户坐标空间是您发出的所有描画命令的工作环境。该空间的单位由点来表示。设备坐标空间指的是设备内在的坐标空间,由像素来表示。缺省情况下,用户坐标空间上的一个点等于设备坐标空间的一个像素,这意味着一个点等于1/160英寸。然而,您不应该假定这个比例总是1:1。UIColor 对象提供了一些便利方法,用于通过RGB、HSB、和灰度值指定颜色值。您也可以使用Core Graphics 框架中的CGContextSetRGBStrokeColor 和CGContextSetRGBFillColor 函数来创建和设置颜色。路径轮廓可以用像CGContextStrokePath 这样的函数来画,即用当前的笔划颜色画出以路径为中心位置的线。路径的填充则可以用CGContextFillPath 函数来实现,它的功能是用当前的填充颜色或样式填充路径线段包围的区域。获取上下文,图形上下文是什么意思?CGContextRef context = UIGraphicsGetCurrentContext();2、简单的示例代码[cpp] view plaincopy// 画一个正方形图形 没有边框 CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5); CGContextFillRect(context, CGRectMake(2, 2, 270, 270)); CGContextStrokePath(context); // 写文字 CGContextSetLineWidth(context, 1.0); CGContextSetRGBFillColor (context, 1, 1, 1, 1.0); UIFont *font = [UIFont boldSystemFontOfSize:11.0]; [@"fangyp" drawInRect:CGRectMake(40, 40, 80, 20) withFont:font]; // 画一条线 CGContextSetRGBStrokeColor(context, 0.5, 0.5, 0.5, 0.5);//线条颜色 CGContextMoveToPoint(context, 20, 20); CGContextAddLineToPoint(context, 200,20); CGContextStrokePath(context); // 画正方形边框 CGContextSetRGBStrokeColor(context, 1, 1.0, 1.0, 1.0); CGContextSetLineWidth(context, 2.0); CGContextAddRect(context, CGRectMake(2, 2, 270, 270)); CGContextStrokePath(context); // 画方形背景颜色 CGContextTranslateCTM(ctx, 0.0f, self.view.bounds.size.height); CGContextScaleCTM(ctx, 1.0f, -1.0f); UIGraphicsPushContext(ctx); CGContextSetLineWidth(ctx,320); CGContextSetRGBStrokeColor(ctx, 250.0/255, 250.0/255, 210.0/255, 1.0); CGContextStrokeRect(ctx, CGRectMake(0, 0, 320, 460)); UIGraphicsPopContext();
目录
相关文章
|
安全 Windows 编解码
怎么设置服务器禁止被ping
怎么设置服务器禁止被ping 如何禁止服务器被ping--怎么设置:频繁地使用Ping命令会导致网络堵塞、降低传输效率,为了避免恶意的网络攻击,一般都会拒绝用户Ping服务器。为实现这一目的,不仅可以在防火墙中进行设置,也可以在路由器上进行设置,并且还可以利用Windows2000/2003系统自身的功能实现。
6271 0
|
11月前
|
SQL 中间件 C#
一个使用 WPF 开发的管理系统
一个使用 WPF 开发的管理系统
218 4
|
JSON 前端开发 Java
springBoot——Web开发简介【七】
springBoot——Web开发简介【七】
241 0
|
编译器 C语言
【C语言】 指针篇,不会的一定要看,指针没有想象的那么难,我们一起攻克它3
【C语言】 指针篇,不会的一定要看,指针没有想象的那么难,我们一起攻克它3
|
JavaScript 前端开发
深入浅出 妙用Javascript中apply、call、bind
【8月更文挑战第1天】深入浅出 妙用Javascript中apply、call、bind
87 0
Anaconda 镜像源操作(查看配置删除)
Anaconda 镜像源操作(查看配置删除)
2643 0
|
安全
游戏测试中的那些坑-先买票再上车
首先来看一个简化版本的购买物品时序图,步骤不多但应该包含了核心内容。其中出问题在于步骤6、7上。服务器是先将玩家需要获得的物品加入到背包中,然后才去扣除对应的货币。这个时候就可能产生了一个“吃霸王餐”的漏洞,假如扣除货币失败了,由于先给玩家添加了物品,因此就变成了免费获得了所购买物品。而当一个玩家产生了这样的漏洞就会一传十,十传百,很快就会让整个游戏的经济循环出现问题,如果游戏厂商发现的晚的话,补救措施就更难了。
307 0
游戏测试中的那些坑-先买票再上车
|
iOS开发 开发者
玩转iOS转场动画(二)
玩转iOS转场动画
334 0
|
Web App开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
                                                                                序列化对单例的破坏 本文将通过实例+阅读Java源码的方式介绍序列化是如何破坏单例模式的,以及如何避免序列化对单例的破坏。
1006 0

热门文章

最新文章