CoreGraphics详解

CoreGraphics详解

  • CoreGraphics详解

    • CoreGraphics绘图

      • 绘制一个矩形
      • 绘制一个椭圆
      • 绘制曲线
      • 绘制圆形
      • 链接点来绘制为图形
      • UIView四周描线

CoreGraphics绘图

绘制一个矩形

CGRect rectangle=CGRectMake(0, 0, 200, 200);

//获取当前图形

CGContextRef ctx=UIGraphicsGetCurrentContext();

//当前图形添加矩形

CGContextAddRect(ctx, rectangle);

//填充颜色

CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);

//绘制当前区域

CGContextFillPath(ctx);

绘制一个椭圆

CGRect rectangle=CGRectMake(30, 30, 200, 200);

//获取当前图形

CGContextRef ctx=UIGraphicsGetCurrentContext();

//当前图形添加椭圆

CGContextAddEllipseInRect(ctx,rectangle);

//填充颜色

CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);

//绘制当前区域

CGContextFillPath(ctx);

###绘制一个椭圆

CGRect rectangle=CGRectMake(30, 30, 200, 200);

//获取当前图形

CGContextRef ctx=UIGraphicsGetCurrentContext();

//当前图形添加椭圆

CGContextAddEllipseInRect(ctx,rectangle);

//填充颜色

CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);

//绘制当前区域

CGContextFillPath(ctx);

绘制曲线

//get the current drawing context

CGContextRef ctx=UIGraphicsGetCurrentContext();

//start drawing with point

CGContextBeginPath(ctx);

//draw to this point

CGContextMoveToPoint(ctx, 200.0, 200.0);

//draw 贝塞尔曲线

CGContextAddQuadCurveToPoint(ctx, 150, 220, 150, 300);

//fill color

/**

* @brief 在指定点追加二次贝塞尔曲线,通过控制点和结束点指定曲线。

* 关于曲线的点的控制见下图说明,图片来源苹果官方网站。参数按顺序说明

* @param c 当前图形

* @param cpx 曲线控制点的x坐标

* @param cpy 曲线控制点的y坐标

* @param x 指定点的x坐标值

* @param y 指定点的y坐标值

*

*/

CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);

CGContextSetLineWidth(ctx, 10);

//draw this area

CGContextStrokePath(ctx);

绘制圆形

//获取当前图形

CGContextRef ctx=UIGraphicsGetCurrentContext();

//当前图形添加椭圆

CGContextAddArc(ctx, 50.0, 50.0, 25.0, 0, 2 * M_PI, 1);

//填充颜色

CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);

//绘制当前区域

CGContextFillPath(ctx);

链接点来绘制为图形

CGContextRef ctx=UIGraphicsGetCurrentContext();

//start drawing with point

CGContextBeginPath(ctx);

//draw to this point

CGContextMoveToPoint(ctx, 100.0, 100.0);

CGContextAddLineToPoint(ctx, 100.0, 200.0);

CGContextAddLineToPoint(ctx, 200.0, 100.0);

//return to orgin point

CGContextClosePath(ctx);

//fill color

CGContextSetFillColorWithColor(ctx, [UIColor redColor].CGColor);

//绘制当前区域

CGContextFillPath(ctx);

UIView四周描线

-(void)drawRect:(CGRect)rect

{

[super drawRect:rect];

//get the current drawing context

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextBeginPath(context);

CGContextSetLineWidth(context,1);

CGContextMoveToPoint(context, 0, 0);

CGContextAddLineToPoint(context,

CGRectGetWidth(self.bounds),

0);

CGContextMoveToPoint(context,

CGRectGetWidth(self.bounds),

0);

CGContextAddLineToPoint(context,

CGRectGetWidth(self.bounds),

CGRectGetHeight(self.bounds));

CGContextMoveToPoint(context,

CGRectGetWidth(self.bounds),

CGRectGetHeight(self.bounds));

CGContextAddLineToPoint(context,0,CGRectGetHeight(self.bounds));

CGContextMoveToPoint(context,0,

CGRectGetHeight(self.bounds));

CGContextAddLineToPoint(context,0,0);

CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);//线条颜色

CGContextStrokePath(context);

}

时间: 2025-01-02 04:27:07

CoreGraphics详解的相关文章

(转) IOS ASI http 框架详解

(转) IOS ASI http 框架详解 ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Objective-C编写,可以很好的应用在Mac OS X系统和iOS平台的应用程序中.ASIHTTPRequest适用于基本的HTTP请求,和基于REST的服务之间的交互. ASIHTTPRequest功能很强大,主要特色如下: l 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作 l 下载的数据,可存储到内存中或直接存储到磁盘中 l 能上传

CocoaPods详解之(三)----制作篇

CocoaPods详解之----制作篇 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/20067595 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢! 学会使用别人的Pods依赖库以后,你一定对创建自己的依赖库跃跃欲试,今天就来揭开Pods依赖库创建过程的神秘面纱.整个创建过程都以我实现的一个名称为WZMarqueeView跑马灯效果的view为例,步骤

iOS疯狂详解之CocoaPods做iOS程序包的依赖管理

每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库.比如 Java: maven,Ivy Ruby: gems Python: pip, easy_install Nodejs: npm 随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods. CocoaPods简介 CocoaPods是一个负责管理iOS项目中第三方开源代码的工具.CocoaPods项目的源码在Github上管理.该项目开始于2011年8月12日,经过一年多的发

Spring事务管理(详解+实例)

写这篇博客之前我首先读了<Spring in action>,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解 Spring事务配置的五种方式 Spring中的事务管理实例详解 1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱. 比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必须是要么都执行要么都

转载:DenseNet算法详解

原文连接:http://blog.csdn.net/u014380165/article/details/75142664 参考连接:http://blog.csdn.net/u012938704/article/details/53468483 本文这里仅当学习笔记使用,具体细节建议前往原文细度. 论文:Densely Connected Convolutional Networks 论文链接:https://arxiv.org/pdf/1608.06993.pdf 代码的github链接:h

MariaDB(MySQL)创建、删除、选择及数据类型使用详解

一.MariaDB简介(MySQL简介略过) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL A

HttpServletResponse和HttpServletRequest详解

HttpServletResponse,HttpServletRequest详解 1.相关的接口 HttpServletRequest HttpServletRequest接口最常用的方法就是获得请求中的参数,这些参数一般是客户端表单中的数据.同时,HttpServletRequest接口可以获取由客户端传送的名称,也可以获取产生请求并且接收请求的服务器端主机名及IP地址,还可以获取客户端正在使用的通信协议等信息.下表是接口HttpServletRequest的常用方法. 说明:HttpServ

POSIX 线程详解(经典必看)

总共三部分: 第一部分:POSIX 线程详解                                   Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  2000 年 7 月 01 日 第二部分:通用线程:POSIX 线程详解,第 2部分       Daniel Robbins ([email protected]), 总裁/CEO, Gentoo Technologies, Inc.  20

.NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)

阅读目录: 1.环路执行对象模型.碎片化执行模型(假递归式调用) 2.N层对象执行模型(纵横向对比链式扩展方法) 3.LINQ查询表达式和链式查询方法其实都是空壳子 4.详细的对象结构图(对象的执行原理) 5.IQueryable<T>与IQueryProvider一对一的关系能否改成一对多的关系 6.完整的自定义查询 1]. 环路执行对象模型.碎片化执行模型(假递归式调用) 这个主题扯的可能有点远,但是它关系着整个LINQ框架的设计结构,至少在我还没有搞懂LINQ的本意之前,在我脑海里一直频