UIView类绘图出现错误提示

一:问题:blog

Jan 16 15:49:53  CUBOT Band Ⅲ[2082] <Error>: CGContextSetLineWidth: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.it

Jan 16 15:49:53  CUBOT Band Ⅲ[2082] <Error>: CGContextSetLineJoin: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.用户体验

Jan 16 15:49:53  CUBOT Band Ⅲ[2082] <Error>: CGContextSetLineCap: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.date

Jan 16 15:49:53  CUBOT Band Ⅲ[2082] <Error>: CGContextSetMiterLimit: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.程序

Jan 16 15:49:53  CUBOT Band Ⅲ[2082] <Error>: CGContextSetFlatness: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.方法

 

二:解决:im

1:设置,传说中是因为:通常式iOS6的时候使用这种方式,iOS7,8也兼容,可是到了iOS9就报了警告。最后验证,没鸟用.PS:至少我遇到的问题不是因为它引发的数据

2:缘由简单分析: drawView方法调用不合理. 使用UIView绘图,只能在drawRect:方法中获取相应的contextRef并绘图。若是在其余方法中获取将获取到一个invalidate的ref而且不能用于画图。drawRect:方法不能手动显示调用,必须经过调用setNeedsDisplay 或者 setNeedsDisplayInRect ,让系统自动调该方法。img

因为此处同事是使用了property 属性的set方法先去初始化数据的并调用了UIBezierPath去绘图,再去调用drawView,因此形成这样的错误提示,其实程序并不会所以而奔溃,可是这很是影响画图速度,形成必定程度上的卡顿,给用户体验很差;兼容

1:同事的错误作法:(同事写的)

 

 

 

2:以后我改进了一下

 

 

 

3:错误提示消失了

相关文章
相关标签/搜索