我想在2点之间画一条线。但是UIGraphicsGetCurrentContext()返回null
ViewController.m
self.drawLine.firstPoint = self.btnPointOne.bounds.origin;
self.drawLine.secondPoint = self.btnPointTwo.bounds.origin;
[self.drawLine drawRect:self.drawWatchModeView.bounds];
DrawLine.h
@interface DrawLine : UIView{
CGContextRef context;
}
@property (assign, nonatomic) CGPoint firstPoint;
@property (assign, nonatomic) CGPoint secondPoint;
画线
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
}
return self;
}
- (void)drawRect:(CGRect)rect {
context = UIGraphicsGetCurrentContext();
// Drawing code
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
//line width
CGContextSetLineWidth(context, 1.0);
CGContextMoveToPoint(context, self.firstPoint.x, self.firstPoint.y);
CGContextAddLineToPoint(context, self.secondPoint.x, self.secondPoint.y);
// and now draw the Path!
CGContextStrokePath(context);
}
但是它出错
CGContextSetStrokeColorWithColor:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetLineWidth:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextMoveToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextAddLineToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextDrawPath:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetStrokeColorWithColor:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetLineWidth:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextMoveToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextAddLineToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextDrawPath:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetStrokeColorWithColor:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetLineWidth:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextMoveToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextAddLineToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextDrawPath:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetStrokeColorWithColor:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextSetLineWidth:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextMoveToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextAddLineToPoint:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
CGContextDrawPath:无效的上下文0x0。如果要查看回溯,请设置CG_CONTEXT_SHOW_BACKTRACE环境变量。
我尝试将其UIViewControllerBasedStatusBarAppearance
设置YES
为对我不起作用我尝试将其删除UIViewControllerBasedStatusBarAppearance
对我不起作用
您不能drawRect:
随时随地打电话,因此您的电话线是:
[self.drawLine drawRect:self.drawWatchModeView.bounds];
需要更改以要求操作系统运行绘制周期。发生这种情况时,将设置图形上下文,并且一切就绪。当您显式运行该上下文时,该上下文不存在。因此,将该行更改为:
[self.drawLine setNeedsDisplay];
或者
[self.drawLine setNeedsDisplayInRect:self.drawWatchModeView.bounds];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句