记录一次Quartz2D学习(二)
(一)内主要就是讲了线条的绘制以及绘制状态的保存与恢复
本次就讲一些图形的画法
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学习(二)的更多相关文章
- 记录一次Quartz2D学习(六)
(五)内主要讲到了一些图层操作 本次主要讲 图片的裁剪 6图片裁剪 6.1 图片裁剪 TIP: 可能会影响统一图层的显示 - (void)drawRect:(CGRect)rect { CGConte ...
- 记录一次Quartz2D学习(三)
在(二)内,讲到了几何图形的绘制,这次就讲文本与图片的绘制 3 图片与文本 3.1 文本绘制 - (void)drawRect:(CGRect)rect { NSString * str = @&qu ...
- 记录一次Quartz2D学习(一)
经常看点 drawRect的重写 但是不知道这究竟是神马 今天开始学习这一块的东西,更确切地说是深入 早在view的时候 就经常会调用layer的maskToBounds属性,其实 重写 drawR ...
- 记录一次Quartz2D学习(七)
(六)内主要讲述了图片的裁剪 本次主要讲交互 7.交互 7.1 通过外部刷新内部的显示效果 初始化的时候设定好初始值,调用setNeedsDisplay方法来重新绘制 - (instancetype ...
- 记录一次Quartz2D学习(五)
(四)内主要讲了绘制状态的保存与恢复 本次主要讲述 缩放,旋转,平移等操作 5.附加操作 5.1 旋转 TIP: 旋转操作主要是对本次渲染的图层进行旋转,旋转的中心为左上角顶点 - (void)dra ...
- 记录一次Quartz2D学习(四)
(三)内主要讲了图片与文字的绘制 本次主要讲解 绘制状态的保存与恢复,以及对它的使用 4.绘制状态 4.1 绘制状态的保存与恢复,以及对它的应用 TIP:通过对保存恢复绘制状以及多次的渲染,可以绘制出 ...
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- iOS学习——Quartz2D学习之UIKit绘制
iOS学习——Quartz2D学习之UIKit绘制 1.总述 在IOS中绘图技术主要包括:UIKit.Quartz 2D.Core Animation和OpenGL ES.其中Core Animati ...
- iOS学习——Quartz2D学习之DrawRect
Quartz2D学习之DrawRect 本文以问答形式主要讲述Quartz2D的相关内容,参考内容是网上下载的学习视频资料. 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Ma ...
随机推荐
- 对CSS中的Position、Float属性的一些深入探讨
对CSS中的Position.Float属性的一些深入探讨 对于Position.Float我们在平时使用上可以说是使用频率非常高的两个CSS属性,对于这两个属性的使用上面可能大多数人存在一些模糊与不 ...
- 父ListView嵌套子ListView时点击事件没有响应
转发请备注出处:http://www.cnblogs.com/LT5505/p/5972999.html 问题: 在ListView中嵌套ListView之后,子ListView会把父ListView ...
- 游戏编程系列[1]--游戏编程中RPC协议的使用[2]--Aop PostSharp篇
上一篇我们使用了一个通用JSON协议约定来进行达到远程调用的目的.但是从实现上,我们需要不断的在所有的方法上添加拦截,并且判断拦截,然后执行,这就达到了一个比较繁琐的目的. 之前我们尝试过使用代码生成 ...
- form表单 ----在路上(15)
form 表单就是将用户的信息提交到服务器,服务器会将信息存储活着根据信息查询数据进行增删改查,再将其返回给用户. 基本格式: <form action="" method ...
- js ajax php分页组件
github https://github.com/lihefen/pageList html页面 <!DOCTYPE html><html><head>< ...
- BootStrap_04之jQuery插件(导航、轮播)、以及Less
1.列偏移与列排序: ①列偏移:控制列出现的位置,某列偏移后,后序列会随之偏移--只能右偏移: col-lg/md/sm/xs-offset-*; ②列排序:控制某一列的位置,该列可以左(pull)右 ...
- ASP.NET OWIN OAuth:refresh token的持久化
在前一篇博文中,我们初步地了解了refresh token的用途——它是用于刷新access token的一种token,并且用简单的示例代码体验了一下获取refresh token并且用它刷新acc ...
- XML技术的应用
XML技术的发展历史:gml--->sml--->html--->xml(可扩展标记语言). HTML和XML技术的区别: 1.HTML技术的标签不能自己定义,必须使用规定语法编写: ...
- ASP.NET MVC Html.BeginForm 设置 timeout
示例代码: @using (Html.BeginForm("PublishSubmit", "Blog", FormMethod.Post, new { id ...
- nodejs、npm、grunt——名词解释
最近着手开发一个新项目,打算从工程化的角度整理一套自己的前端开发.发布体系. grunt这些工具,之前别人用我也用,并没有认真想过它们的前世今生,正好趁着这个机会,我来理一理目前业界比较流行这些工具的 ...