画线:
C语言的函数库勾勒线条:
继承了UIView的类:(实现里面的方法)
线条的宽度会占用里面填充的空间,所以先描边还是先填充所看到的图形是有区别的
//该方法在创建 MyView对象时 会自动调用一次
//该方法不可以手动调用
- (void)drawRect:(CGRect)rect {
//获取系统的当前上下文对象
//1.获取当前画布
// CGContextRef context = UIGraphicsGetCurrentContext();
// //2.勾勒图形
// //设置绘图的起始点
// CGContextMoveToPoint(context, 40, 40);
// //添加第一个路径点
// CGContextAddLineToPoint(context, 40, 140);
// CGContextAddLineToPoint(context, 140, 140);
// CGContextAddLineToPoint(context, 140, 40);
// CGContextAddLineToPoint(context, 40, 40);
// //设置描边颜色
// CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
// //描边
// CGContextStrokePath(context);
// CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
// //填充
}
贝塞尔绘制线条:
实例方法:
画线:
起笔:
[path moveToPoint:CGPointMake(40, 40)];
勾勒:
[path addLineToPoint:CGPointMake(140, 200)];
闭合曲线:(当线条的宽度不为1的时候用效果好,如果用描边的方式会有部分地方的像素空白)
[path closePath];
描边、填充:
[path stroke/fill];
用颜色设置填充色/边的颜色:
[[UIColor greenColor] setFill/setStroke];
属性:
设置线条的宽度:
path.lineWidth = 10;
设置线条两端的样式:
path.lineCapStyle = kCGLineCapSquare;
设置线条焦点的样式(就是线条的相交的地方)
path.lineJoinStyle = kCGLineJoinBevel;
继承了UIView的类:(实现里面的方法)
线条的宽度会占用里面填充的空间,所以先描边还是先填充所看到的图形是有区别的
//该方法在创建 MyView对象时 会自动调用一次
//该方法不可以手动调用
- (void)drawRect:(CGRect)rect {
//1.创建贝塞尔路径的实例
// UIBezierPath *path = [UIBezierPath bezierPath];(一个对象可以勾勒多个图形,但是这2个图形的色彩,形式呈现的是一样的)
// //2.勾勒图形
// [path moveToPoint:CGPointMake(40, 40)];
// [path addLineToPoint:CGPointMake(140, 40)];
// [path addLineToPoint:CGPointMake(140, 140)];
// [path addLineToPoint:CGPointMake(40, 140)];
//// [path addLineToPoint:CGPointMake(40, 40)];
// [path closePath];
// [path moveToPoint:CGPointMake(40, 200)];
// [path addLineToPoint:CGPointMake(140, 200)];
// [path addLineToPoint:CGPointMake(140, 300)];
// [path addLineToPoint:CGPointMake(40, 300)];
// [path closePath];
//
// //设置描边线的宽度
// path.lineWidth = 10;
// //焦点的样式
//// kCGLineJoinMiter, //尖的
//// kCGLineJoinRound, //圆的
//// kCGLineJoinBevel //斜的 角被砍掉
// path.lineJoinStyle = kCGLineJoinBevel;
// //线两端的样式
//// kCGLineCapButt, //方的
//// kCGLineCapRound, //圆的 多出一块
//// kCGLineCapSquare //方的 多出一块
// path.lineCapStyle = kCGLineCapSquare;
//
// //设置 描边颜色
// [[UIColor redColor] setStroke];
// //设置 填充颜色
// [[UIColor greenColor] setFill];
// //描边
// [path stroke];
// //填充
//// [path fill];
}