记录一次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 ...
随机推荐
- 自动添加Linux登录账户,并授予sudo权限
#!/bin/bash USER=test PASS=$USER GROUP=root HOME=/data/home/$USER # if user not exist if [[ $(cat /e ...
- Go语言实战 - 我需要站内搜索
山坡网的用户抱怨"为什么搜索'二鬼子李富贵'找不到'二鬼子汉奸李富贵'?我用百度搜都能找到." 当时我就滴汗了,用户说的有道理,应该要能搜索到. 之前的方案很简单,用户输入的字串会 ...
- 浅谈angular2+ionic2
浅谈angular2+ionic2 前言: 不要用angular的语法去写angular2,有人说二者就像Java和JavaScript的区别. 1. 项目所用:angular2+ionic2 ...
- Atitit webservice发现机制 WS-Discovery标准的规范attilax总结
Atitit webservice发现机制 WS-Discovery标准的规范attilax总结 1.1. WS-Discovery标准1 1.2. 一.WS-Discovery1 1.2.1. ...
- 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等
有关"数据统计"的一些概念 -- PV UV VV IP跳出率等 版权声明:本文为博主原创文章,未经博主允许不得转载. 此文是本人工作中碰到的,随时记下来的零散概念,特此整理一下. ...
- JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)
1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...
- Objective-C runtime的常见应用
用Objective-C等面向对象语言编程时,"对象"(object)就是"基本构造单元"(building block).开发者可以通过对象来存储并传递数据. ...
- Linux驱动开发——pr_fmt的用法
作者:彭东林 邮箱:pengdonglin137@163.com 在阅读kernel代码的时候,总是看到有很多驱动都在第一行定义pr_fmt,闲来没事,分析了一下, 发现,确实挺方便的.下面记录分享一 ...
- 【Android】 修复ijkPlayer进行m3u8 hls流播放时seek进度条拖动不准确的问题
项目中使用的播放器是ijkPlayer,发现播放切片特点的hls流(m3u8格式的视频)拖动seekBar的时候会莫名的跳转或者seek不到准确的位置,发现网友也遇到了同样的问题,ijk的开发者也说明 ...
- 史上最全、JavaScript基础篇
本章内容: 简介 定义 注释 引入文件 变量 运算符 算术运算符 比较运算符 逻辑运算符 数据类型 数字 字符串 布尔类型 数组 Math 语句 条件语句(if.switch) 循环语句(for.fo ...