最近在iOS开发中,需要使用iOS的画线功能,画线的方法可以写在一个
Controller
视图中,当然这不是最好的方式,建议还是自定义一个UIView
,并重写drawRect:
方法,这样后面方便使用,并且不会造成代码的冗长与啰嗦。
一、新建一个类,继承自UIView
重写drawRect:方法:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetLineWidth(context, 3); //线宽
CGContextSetAllowsAntialiasing(context, true);
CGContextSetRGBStrokeColor(context, 70.0 / 255.0, 241.0 / 255.0, 241.0 / 255.0, 1.0); //线的颜色
CGContextBeginPath(context);
CGContextMoveToPoint(context, 0, 0); //起点坐标
CGContextAddLineToPoint(context, self.frame.size.width, self.frame.size.height); //终点坐标
CGContextStrokePath(context);
}
二、在其他类中调用
- (void)viewDidLoad {
[super viewDidLoad];
CustomLine *line = [[CustomLine alloc] init];
line.backgroundColor = [UIColor whiteColor];
line.frame = self.view.frame;
[self.view addSubview:line];
}
三、需要注意的问题:
在这里直接运行,就会出现画的线段,但是我在项目中写的时候,发现画线并没有出现(项目使用的是swift),说明系统没有自动的调用drawRect:
方法,这里就需要我们在Controller
视图中手动的调用[line setNeedsDisplay];
这句话是手动的让系统去调用drawRect:
方法。
注意:不要试图手动去调用drawRect:方法,因为这是系统负责调用的。
运行截图: