关于 CGContextSaveGState: invalid context 0x0

写此文章谨此纪念折磨我近六小时的Bug。。。

昨天无意看到xcode控制台在打印警告Log。本着一句:没有洁癖的程序员不是好的程序员,我就想把它给消灭掉(不曾想折麽了我近六小时o.o)。

控制台的Log

CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
CGContextSetBlendMode: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
CGContextSetBlendMode: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

在网上看到好多关于CGContextSaveGState报错的问题如下几点:
1、关于statusBar的问题 样式的问题。
2、关于绘图没有在drawRect中进行的。
(以上俩点都可以度娘得到解决办法)。

重点来了

在我的工程中
一、没有做绘图。
二、更没有修改状态栏。
笔者今天头痛也是语无论次的、寻找问题原因的经过就不写了。下面直接说我的原因和解决办法吧

原因、方法

我写聊天背景气泡、对图片拉伸的时候出了问题如下:
我获取到图片的宽高:(20,20);
在设置UIEdgeInsetsMake(16 ,7, 3, 13);把左右的拉伸边缘设置刚好是7 + 13 = 20了。 也就是左右拉伸的区域设置为0了。
关于图片拉伸的知识大家自行度娘补充
故就有了绘图出错 获取不到上下文的问题了(不明白为什么左右为零了 图片还能正常拉伸)
解决办法当然就是UIEdgeInsetsMake(16 ,6, 3, 13);左右拉伸的区域留一像素点就好啦。

            UIImage * rightBubble = [UIImage imageNamed:@"message_sender_background_normal"];
//            UIEdgeInsets edgeInsets = UIEdgeInsetsMake(16 ,7, 3, 13);
            UIEdgeInsets edgeInsets = UIEdgeInsetsMake(16 ,6, 3, 13);
            UIImage *img =  [rightBubble resizableImageWithCapInsets:edgeInsets resizingMode:UIImageResizingModeTile];
            self.messageBackgroundImageView.image = img;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,020评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 首先,请更新微信版本至 6.5.11 。 微信 7 月 11 日发布了一大堆小程序新特性,小程序迎来了一次全方位的...
    栈记阅读 782评论 0 1
  • 亲爱的宝宝 每天看着你健康的成长 你知道妈妈有多幸福吗 想想我们一起生活的83天 就觉得一切都像是梦一样 2017...
    昙韵阅读 1,090评论 1 0
  • 1.忌交浅言深。 管住嘴,守住心。不要轻易被感动,就把心里的秘密一股脑的说出。你永远不知道,你的秘密下一秒会变成屠...
    茉莉的小茶馆阅读 269评论 0 0