zoukankan      html  css  js  c++  java
  • UIView类绘图出现错误提示

    一:问题:

    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.

    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.

    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.

    二:解决:

    1:设置,传说中是由于:一般式iOS6的时候使用这种方式,iOS7,8也兼容,但是到了iOS9就报了警告。最后验证,没鸟用.PS:至少我遇到的问题不是由于它引起的

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

    由于此处同事是使用了property 属性的set方法先去初始化数据的并调用了UIBezierPath去绘图,再去调用drawView,所以造成这样的错误提示,其实程序并不会因此而奔溃,但是这非常影响画图速度,造成一定程度上的卡顿,给用户体验不好;

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

    2:之后我改进了一下

    3:错误提示消失了

  • 相关阅读:
    SQLSTATE[HY000] [2002] No such file or directory(转)
    pg_stat_activity各字段的含义
    DedeCMS 后台空白问题
    关于XP和win7 的IIS发布问题
    500错误
    swfupload上传多张照片出现404 错误?(已解决)
    url字符串编码乱码问题
    遮罩层《一》
    Java集合按照索引分页,以及JS数组代码按照索引分页的源码
    填充整个页面
  • 原文地址:https://www.cnblogs.com/nelsen-chen/p/6290077.html
Copyright © 2011-2022 走看看