标题
[ios/functions_c.m]画线 画单根线
clq
浏览(496) +
2021-02-22 12:51:27 发表
编辑
关键字:
设置颜色时有个非常容易出错的地方,一定要注意
//画线
//画线//画单根线//参考 ViewController_draw
void Canvas_DrawLine(CGContextRef context, CGFloat x, CGFloat y, CGFloat to_x, CGFloat to_y, CGFloat width, UIColor * color)
{
//1.获取上下文
//CGContextRef context = UIGraphicsGetCurrentContext();
//CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 15.0); //线宽
//CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 0.1f); //线宽//0.1 的效果会很奇怪, 0.5f 比较好
CGContextSetLineWidth(context, width); //线宽//0.1 的效果会很奇怪, 0.5f 比较好
//2.设置当前上下文路径
//设置起始点
CGContextMoveToPoint(context, x, y);
//增加点
CGContextAddLineToPoint(context, to_x, to_y);
//CGContextAddLineToPoint(context, 50, 200);
//关闭路径
CGContextClosePath(context);
//3.设置属性
/*
UIKit会默认导入 core Graphics框架,UIKit对常用的很多的唱歌方法做了封装
UIColor setStroke设置边线颜色
uicolor setFill 设置填充颜色
*/
//[[UIColor redColor]setStroke];
//[[UIColor blueColor]setFill];
// [color setStroke]; //设置外框颜色 //实际上只能设置 UIGraphicsGetCurrentContext 得到的默认 context
// [rgba_255(0, 0, 0, 0) setFill]; //设置填充颜色 //实际上只能设置 UIGraphicsGetCurrentContext 得到的默认 context
//用下面这两个函数可能更合适
//CGContextSetRGBFillColor(context, 0, 1, 0, 1);
//CGContextSetRGBStrokeColor(context, 0, 1, 0, 1);
//或者
//CGContextSetFillColorWithColor
//CGContextSetStrokeColorWithColor
//奇怪,和 ViewController_draw 里不同的是,这里的 StrokeColor 不能用 [color setStroke]
//原因大概是因为 ViewController_draw 使用的是默认 context 进行绘图,
//因其是在 uiview 的 - (void)drawRect:(CGRect)rect
//中获得的上下文 CGContextRef context = UIGraphicsGetCurrentContext();
//而自绘控件时是加了一个自己的 CALayer,画的是新 CALayer 的 CGContextRef
CGContextSetStrokeColorWithColor(context, [color CGColor]);
// [[UIColor yellowColor]set];
//4.绘制路径
CGContextDrawPath(context, kCGPathFillStroke);
}//
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.