Quartz 2D:初识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Quartz 2D:初识相关的知识,希望对你有一定的参考价值。
在UIView中重写drawRect方法
- (void)drawRect:(CGRect)rect {
[self drawLine];
}
#pragma mark 画线操作
- (void)drawLine{
//1、获取上下文-UIView对应的上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//2、创建可变路径并设置路径
CGMutablePathRef path = CGPathCreateMutable();
//1设置起始点
CGPathMoveToPoint(path, NULL, 50, 50);
//2设置目标点
CGPathAddLineToPoint(path, NULL, 200, 200);
CGPathAddLineToPoint(path, NULL, 50, 200);
//3封闭路径:a、直接指定目标点
// CGPathAddLineToPoint(path, NULL, 50, 50);
//b、使用关闭路径方法
CGPathCloseSubpath(path);
//3、将路径添加到上下文
CGContextAddPath(context, path);
//4、设置上下文属性
/*
red 0~1.0 red / 255
alpha 透明度 0~1.0 ( 0 :完全透明)
提示:1、在使用rgb颜色设置时,不要同时指定rgb 和 alpha ,否则会对性能造成一定影响
2、默认线条和填充颜色都是黑色
*/
//1设置线条颜色
// CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);
CGContextSetRGBFillColor(context, 0.0, 1.0, 0.0, 1.0);
//2设置线条宽度
CGContextSetLineWidth(context, 5.0f);
//3设置线条的顶点
CGContextSetLineCap(context, kCGLineCapRound);
//4设置线条的连接点样式
CGContextSetLineJoin(context, kCGLineJoinBevel);
//5设置线条的虚线样式
/*
虚线的参数:context
phase 相位,虚线的起始位置通常使用0即可,从头开始画虚线
lengths长度的数组
count lengths数组的个数
*/
CGFloat lengths[2] = {20.0,10.0};
CGContextSetLineDash(context, 0.0, lengths, 2);
//5、绘制路径
/*
kCGPathStroke 画线(空心)
kCGPathFill 填充(实心)
kCGPathFillStroke 既画线又填充
*/
CGContextDrawPath(context, kCGPathStroke);
//6、释放路径
CGPathRelease(path);
以上是关于Quartz 2D:初识的主要内容,如果未能解决你的问题,请参考以下文章