利用Quartz2D推图的另一个方法 (使用CGMutalePathRef进行分层次)

可以利用 CGMutablePathRef 创建每个不同图形,然后再一起添加到CGContext中

- (void)drawRect:(CGRect)rect
{
    CGContextRef ctx = UIGraphicsGetCurrentContext();

    //一、 画线
    // 1.先创建一个路径
    CGMutablePathRef linePath = CGPathCreateMutable();

    // 2.拼接路径
    CGPathMoveToPoint(linePath, nil, 0, 0);
    CGPathAddLineToPoint(linePath, nil, 100, 100);

    // 添加路径到上下文
    CGContextAddPath(ctx, linePath);

    //二、 画圆
    CGMutablePathRef circlePath = CGPathCreateMutable();
    CGPathAddEllipseInRect(circlePath, nil, CGRectMake(150, 150, 100, 100));
    CGContextAddPath(ctx, circlePath);

    // 渲染
    CGContextStrokePath(ctx);

  // Creat\Copy\retain 用过之后都要做一次release
     CGPathRelease(linePath);
     CGPathRelease(circlePath);
}
时间: 2024-07-30 10:19:19

利用Quartz2D推图的另一个方法 (使用CGMutalePathRef进行分层次)的相关文章

通向高可扩展性之路(推特篇) ---- 一个推特用来支撑1亿5千万活跃用户、30万QPS、22MB每秒Firehose、以及5秒内推送信息的架构

原文链接:http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active-users.html 写于2013年7月8日,译文如下: “可以解决推特所面临的挑战”的玩具般的方案是一个常用在扩展性上的比喻.每个人都觉得推特很容易实现.稍微具备一些系统架构的知识我们就可以构建一个推特,就这么简单.但是根据推特软件开发部门的VP Raffi Krikorian在 Timelin

接口测试基础知识详解http请求由三部分组成,分别是:请求行、消息报头、请求正文 1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Method Request-URI HTTP-Version CRLF 其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了

HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:http://host[":"port][abs_path]http表示要通过HTTP协议来定位网络资源:host表示合法的Internet主机域名或者IP地址:port指定一个端口号,为空则使用缺省端口80:abs_path指定请求资源的URI:如果URL中没有给出abs_path,那么当它作为请求URI时,必须以"/"的形式给出,通常这个工作浏览器自动帮我们完成.e

iOS之下拉放大,上推缩小,一个方法搞定

先来看看效果吧. 讲讲大概的实现思路:1?创建头部的视图和tableview,需要注意的是tableview要设置contentInset,contentInsent 的顶部要和头部视图的背景图的高度一样,否则会有空隙(或是有遮挡).myTableView.contentInset = UIEdgeInsetsMake(headRect.size.height-navHeight-navHeight, 0, 0, 0);2?对头部视图的背景图片的尺寸进行处理,当然,你也可以直接找一个适合尺寸的图

利用WCF的双工通讯实现一个简单的心跳监控系统 z

利用WCF的双工通讯实现一个简单的心跳监控系统 http://www.cnblogs.com/zuowj/p/5761011.html 何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态,就好比医院里面的心跳监视仪一样,能够随时显示病人的心跳情况. 心跳监控的目的是什么? 与医院里面的心跳监视仪目的类似,监控程序运行状态,一旦出现问题(比如:一些自动运行的服务.程序等突然停止运行了),那么心跳监控系统就能“感 知到”并及时的显示在监控界面上,同时可以通过微信.短信告之相关的人员,以

iOS开发利用系统推送Notifaction和轮询实现简单聊天系统

话不多说,先看一下做好的聊天软件界面: 首先在StoryBoard里拖了一个UItableView和一个view用来输入文字或者语音,右边的按钮用来切换文字和语音: 聊天里有三种id: orderID :聊天id messageID :每条消息的ID sessionID :每个订单的会话ID,如果为空通过orderID请求. 然后在viewDidLoad里做一些界面上的操作和一些初始化的操作: 1.设置一下tableview的headView 2.初始化录音.用户头像.获取订单详情 <stron

利用思维导图构思作文框架结构的操作方法介绍

绘制思维导图简介方法.什么是思维导图?思维导图就是以图形结合文字的形式表达信息.虽然在思维导图当中同样也会有很多的文字,但是这些文字都是附和于图形之中,让人一眼看上去对其中所表达的信息一目了然.那下面在本文中就给大家介绍利用思维导图构思作文框架结构的操作方法介绍. 绘制工具; 迅捷画图,能上网的电脑带有浏览器 操作方法介绍: 1.首先我们需要找到能绘制思维导图的软件或者是在线网站,以下操作方法在在线网站中进行,进入网站之后选择进行画图进行绘制使用. 2.然后进入画图就会进入新建文件页面,在新建文

Rails::Application中的一个方法调用

Ruby语言的动态性使得想仅仅通过查找相关API文档来学习Rails是完全不够的,因为API文档只记录了静态代码定义的方法,而Rails中有很多的方法都是在加载时或运行时动态生成的,想要了解这些方法必须要阅读源代码.本文以Rails工程下的config/application.rb文件中的一个方法调用为例,分析方法调用的具体过程. 1. 问题描述 假设Rails工程叫做Sample,那么在config/application.rb中会定义Sample::Application,并可以在其中调用c

(二)线程同步_1---同步一个方法

同步一个方法(Synchronizing a method) 在并发编程中,最常见的情景莫过于多线程共享同一资源的情景了,例如多个线程同时读写相同的数据或者同时访问相同的文件或数据库连接,如果不采取一个控制机制,那么就会造成数据的不一致甚至是错误发生: 为了解决这些问题,引入了临界区域(critical section)的概念,一个临界区域是指一个用来控制资源访问的代码块,以保证被访问的资源不会同时被多个线程访问,从而保证了数据的一致性: java中提供了Synchronization机制,当一

如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)

在任何一个编辑器中编写一个静态的Main方法,必须是静态且名为Main的方法,并将Main方法所在的类文件命名为yang.cs(这个名字随便命名),如图-1. 图-1 打开你的vs2013开发人员命令提示,如图-2. 图-2 注意图-2中的第一行是一个路径,将名为yang.cs的类文件放入到这个路径中,如图-3. 图-3 在vs2013开发人员命令提示中输入csc yang.cs,并按下回车键,如图-4. 图-4 再看看路径下发生了什么(生成了一个yang.exe的可执行程序),如图-5. 图-