(一)内主要就是讲了线条的绘制以及绘制状态的保存与恢复

本次就讲一些图形的画法

2 图形的绘制

  2.1  三角形的绘制 :(就是绘制三条线)

- (void)drawRect:(CGRect)rect {

//获取绘制上下文

CGContextRef    ctx =UIGraphicsGetCurrentContext();

//设置连接处的圆角

CGContextSetLineJoin(ctx, kCGLineJoinRound);

//设置颜色以及线条粗细

[[UIColor yellowColor] set];

CGContextSetLineWidth(ctx, 20);

//移动起始点

CGContextMoveToPoint(ctx, 50, 50);

//三条先的绘制

CGContextAddLineToPoint(ctx, 150, 150);

CGContextAddLineToPoint(ctx, 50, 200);

CGContextAddLineToPoint(ctx, 50, 50);

//绘制

CGContextStrokePath(ctx)}

  2.2   长方形的绘制

  TIP:这里设置线条的宽度 ,不会影响坐标,线宽会按照绘制的线条想上下或者左右进行绘制

- (void)drawRect:(CGRect)rect {

//获取绘制上下文

CGContextRef    ctx =UIGraphicsGetCurrentContext();

//设置连接处的圆角

CGContextSetLineJoin(ctx, kCGLineJoinRound);

//设置颜色以及线条粗细

CGContextSetLineWidth(ctx, 20);

[[UIColor yellowColor] set];

//直接调用添加矩形方法

CGContextAddRect(ctx, CGRectMake(0, 0, 300, 250));

//使用下面这个方法创建一个实心的矩形

CGContextFillRect(ctx, CGRectMake(0,260, 300, 100));

//绘制---使用填充方法之后  可以不使用渲染方法

CGContextStrokePath(ctx);

}

实心矩形

  

  2.3 绘制一个圆形

  

- (void)drawRect:(CGRect)rect {

//获取绘制上下文

CGContextRef    ctx =UIGraphicsGetCurrentContext();

//设置连接处的圆角

CGContextSetLineJoin(ctx, kCGLineJoinRound);

//设置颜色以及线条粗细

CGContextSetLineWidth(ctx, 20);

[[UIColor yellowColor] set];

//使用下面方法绘制一个空心圆 一个PI只能绘制半圆 --  弧形也可以通过这种方式来绘制

CGContextAddArc(ctx, 100, 100, 50, 0, M_PI*2, 0 );

//使用下面方法来绘制一个实心的圆或者椭圆

CGContextFillEllipseInRect(ctx, CGRectMake(100, 100, 100, 50));

//绘制---使用填充方法之后  可以不使用渲染方法

CGContextStrokePath(ctx);

}

  2.4 绘制扇形

  

- (void)drawRect:(CGRect)rect {

//获取绘制上下文

CGContextRef    ctx =UIGraphicsGetCurrentContext();

//设置颜色以及线条粗细

CGContextSetLineWidth(ctx, 20);

[[UIColor yellowColor] set];

//使用下面方法绘制一个空心圆 一个PI只能绘制半圆

CGContextAddArc(ctx, 100, 100, 50, 0, M_PI, 0 );

//使用下面方法来绘制一个封闭的扇形

CGContextClosePath(ctx);

//使用下面方法填充扇形

CGContextSetRGBFillColor(ctx, 255, 0, 0, 1);

//使用下面方法来封闭上面的扇形

CGContextFillPath(ctx);

//绘制---使用填充方法之后  可以不使用渲染方法

CGContextStrokePath(ctx);

}

 2.5 填充一个四分之一圆

- (void)drawRect:(CGRect)rect {

//获取绘制上下文

CGContextRef    ctx =UIGraphicsGetCurrentContext();

//设置颜色以及线条粗细

CGContextSetLineWidth(ctx, 20);

[[UIColor yellowColor] set];

//移动到初始点

CGContextMoveToPoint(ctx, 100, 200);

//添加线条

CGContextAddLineToPoint(ctx, 200, 200);

//添加线条

CGContextAddLineToPoint(ctx, 200, 300);

//添加圆弧

CGContextAddArc(ctx, 200, 200, 100, M_PI / 2, M_PI, 0);

//填充

CGContextFillPath(ctx);

}

记录一次Quartz2D学习(二)的更多相关文章

  1. 记录一次Quartz2D学习(六)

    (五)内主要讲到了一些图层操作 本次主要讲 图片的裁剪 6图片裁剪 6.1 图片裁剪 TIP: 可能会影响统一图层的显示 - (void)drawRect:(CGRect)rect { CGConte ...

  2. 记录一次Quartz2D学习(三)

    在(二)内,讲到了几何图形的绘制,这次就讲文本与图片的绘制 3 图片与文本 3.1 文本绘制 - (void)drawRect:(CGRect)rect { NSString * str = @&qu ...

  3. 记录一次Quartz2D学习(一)

    经常看点 drawRect的重写  但是不知道这究竟是神马 今天开始学习这一块的东西,更确切地说是深入 早在view的时候 就经常会调用layer的maskToBounds属性,其实 重写 drawR ...

  4. 记录一次Quartz2D学习(七)

    (六)内主要讲述了图片的裁剪 本次主要讲交互 7.交互 7.1  通过外部刷新内部的显示效果 初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制 - (instancetype ...

  5. 记录一次Quartz2D学习(五)

    (四)内主要讲了绘制状态的保存与恢复 本次主要讲述 缩放,旋转,平移等操作 5.附加操作 5.1 旋转 TIP: 旋转操作主要是对本次渲染的图层进行旋转,旋转的中心为左上角顶点 - (void)dra ...

  6. 记录一次Quartz2D学习(四)

    (三)内主要讲了图片与文字的绘制 本次主要讲解 绘制状态的保存与恢复,以及对它的使用 4.绘制状态 4.1 绘制状态的保存与恢复,以及对它的应用 TIP:通过对保存恢复绘制状以及多次的渲染,可以绘制出 ...

  7. emberjs学习二(ember-data和localstorage_adapter)

    emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...

  8. iOS学习——Quartz2D学习之UIKit绘制

    iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...

  9. iOS学习——Quartz2D学习之DrawRect

    Quartz2D学习之DrawRect 本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料. 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Ma ...

随机推荐

  1. Johnson 全源最短路径算法

    解决单源最短路径问题(Single Source Shortest Paths Problem)的算法包括: Dijkstra 单源最短路径算法:时间复杂度为 O(E + VlogV),要求权值非负: ...

  2. appserv 安装php的memcache扩展。

    http://www.cnblogs.com/yiluxiuxing/p/4267709.html 1. 新建一个phpinfo,查看版本号 2. http://museum.php.net/php5 ...

  3. ABP(现代ASP.NET样板开发框架)系列之7、ABP Session管理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之7.ABP Session管理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...

  4. Objective-C中NSInvocation的使用

    OC中调用方法某个对象的消息呦两种方式: #1. performanceSelector: withObject: #2. NSInvocation. 第一个PerformaceSelector比较常 ...

  5. EF操作MySql

    EF的CodeFrist操作MySql的提前准备: 1.安装两个包:MySql.Data和MySql.Data.Entity,在VS中程序包管理器中添加2个包.(备注需要的VS2015,并且EF6支持 ...

  6. c#如何判断webbrowser已经加载完毕

    最近有个小程序需要采集网页源代码,但有的网页中JS脚本又会生成额外的代码,比如http://www.cnblogs.com/lidabo/p/4169396.html 红框部分便是另外加载的代码. 此 ...

  7. Apworks框架实战(四):使用Visual Studio开发面向经典分层架构的应用程序:从EasyMemo案例开始

    时隔一年,继续我们的Apworks框架之旅.在接下来的文章中,我将逐渐向大家介绍如何在Visual Studio中结合Apworks框架,使用ASP.NET Web API和MVC来开发面向经典分层架 ...

  8. iOS关于模块化开发解决方案(纯干货)

    关于iOS模块化开发解决方案网上也有一些介绍,但真正落实在在具体的实例却很少看到,计划编写系统文章来介绍关于我对模块化解决方案的理解,里面会有包含到一些关于解耦.路由.封装.私有Pod管理等内容:并编 ...

  9. 说一说javascript跨域和jsonp

    同源策略 在浏览器的安全策略中“同源策略”非常如雷贯耳,说的是协议.域名.端口相同则视为同源,域名也可换成IP地址,不同源的页面脚本不能获取对方的数据. 要是想使用XMLHttpRequest或者常规 ...

  10. 在DevExpress程序中使用内置的图标构建美观的界面元素

    在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略 ...