02-Quartz2D基本线条绘制

02-基本线条绘制

1.DrawRect⽅方法作⽤用?什么时候调⽤用. DrawRect作⽤用:专⽤用在这个⽅方法当中绘图的.只有在这个⽅方法当中才能取得跟View相关联的上 下⽂文.
DrawRect是系统⾃自⼰己调⽤用的, 它是当View显⽰示的时候⾃自动调⽤用.

2.画线(基本步骤描述) 1.获取跟View相关联的上下⽂文.(UIGraphics都是以它开头) CGContextRef ctx = UIGraphicsGetCurrentContext(); 2.描述路径.
UIBezierPath *path = [UIBezierPath bezierPath]; 2.1设置起点.
[path moveToPoint:CGPointMake(10, 150)]; 2.2添加⼀一根到某个点.
[path addLineToPoint:CGPointMake(200, 50)]; 修改上下⽂文的状态.
设置线的宽度
CGContextSetLineWidth(ctx, 10);
设置线的连接样式.
CGContextSetLineJoin(ctx, kCGLineJoinBevel); 设置线的顶⾓角样式
CGContextSetLineCap(ctx, kCGLineCapRound); 设置线的颜⾊色.还可以直接⽤用set这种⽅方法
[[UIColor greenColor] set]; 3.要把路径添加到上下⽂文当中.

 UIKit path -> CoreGraphics Path

CGContextAddPath(ctx, path.CGPath); 4.把上下⽂文的内容渲染到View. stroke(描边) fill(填充) CGContextStrokePath(ctx);

3. 想要再添加⼀一根线怎么办? 第⼀一种⽅方法:重新设置起点,添加⼀一根线到某个点,⼀一个UIBezierPath路径上⾯面可以有多条线. 第⼆二种⽅方法:直接在原来的基础上添加线.把上⼀一条的终点当做下⼀一条线的起点.添加⼀一根线到 某个点
直接在下⾯面addLineToPoint:CGPointMake(200, 50)

4.怎么样设置线的宽度,颜⾊色,样式? 设置这些样式,我们称为是修改图形上下⽂文的状态. 设置线宽:CGContextSetLineWidth(ctx, 10);
设置线段的连接样式: CGContextSetLineJoin(ctx, kCGLineJoinBevel); 添加顶⾓角样式:CGContextSetLineCap(ctx, kCGLineCapRound); 设置线的颜⾊色: [[UIColor greenColor] set];

5.如何画曲线?

画曲线⽅方法⽐比较特殊需要⼀一个控制点来决定曲线的弯曲程度.画曲线⽅方法为: 先设置⼀一个曲线的起点
[path moveToPoint:CGPointMake(10, 150)];

再添加到个点到曲线的终点.同时还须要⼀一个controlPoint(控件点决定曲线弯曲的⽅方法程序) [path addQuadCurveToPoint:CGPointMake(200, 150) controlPoint:CGPointMake(150, 10)];

6.如何画矩形,圆⾓角矩形?

画矩形直接利⽤用UIBezierPath给我们封装好的路径⽅方法 (x,y)点决定了矩形左上⾓角的点在哪个位置
(width,height)是矩形的宽度⾼高度
bezierPathWithOvalInRect:CGRectMake(x, y, width, height)
[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)];

圆⾓角矩形的画法多了⼀一个参数,cornerRadius
cornerRadius它是矩形的圆⾓角半径. 通过圆⾓角矩形可以画⼀一个圆.当矩形是正⽅方形的时候,把圆⾓角半径设为宽度的⼀一半,就是⼀一个圆. UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(50, 50, 100, 100) cornerRadius:50];

7.如果画椭圆,

画椭圆的⽅方法为: 前两个参数分别代码圆的圆⼼心,后⾯面两个参数分别代表圆的宽度,与⾼高度. 宽⾼高都相等时,画的是⼀一个正圆, 不相等时画的是⼀一个椭圆
[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, 100, 100)];

8.如何利⽤用UIKit封装的上下⽂文进⾏行画图?
直接来个: [path stroke];就可以了. 它底层的实现,就是获取上下⽂文,拼接路径,把路径添加到上下⽂文,渲染到View

9.如何画圆弧? ⾸首先要确定圆才能确定圆弧,圆孤它就圆上的⼀一个⾓角度嘛

Center:圆⼼心
radius:圆的半径 startAngle:起始⾓角度 endAngle:终点⾓角度 clockwise:Yes顺时针,No逆时针

注意:startAngle⾓角度的位置是从圆的最右侧为0. CGPoint center = CGPointMake(150, 150); CGFloat radius = 100;
CGFloat startA = 0;//圆的0度⾓角在圆的最右侧, CGFloat endA = -M_PI_2;

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center
radius:radius startAngle:startA endAngle:endA clockwise:NO]; 

10.如果画扇形. 画扇形的⽅方法为:先画⼀一个圆孤再添加⼀一个⼀一根线到圆⼼心,然后关闭路径. 关闭路径就会⾃自动从路径的终点到路径的起点封闭起下 ⽤用填充的话,它会默认做⼀一个封闭路径,从路径的终点到起点.
[path fill];

转载于:https://www.cnblogs.com/llinsline/p/5392261.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值