关于renderInContext造成的crash问题

关于renderInContext造成的crash问题,在ios8上crash概率还是比较大的,目前以下方式没什么问题,已通过性能测试,无多大影响。
afterScreenUpdates参数为YES时,如果有首次进入界面,默认有下拉刷新时,会造成类似卡帧的效果。
afterScreenUpdates为NO有弹窗时,侧滑返回有部分空白,可能截屏还没完成就已经返回了。

故建议做版本限制,只能避免iOS8大面积的crash,根本上还是没有解决,其它系统仍然有概率crash。

- (UIImage *)capture {
  if (CGRectIsEmpty(TOP_VIEW.frame)) {
      return nil;
  }
  //renderInContext该方法为渲染view.layer,此方法容易造成内存暴涨。
  UIGraphicsBeginImageContextWithOptions(view.bounds.size,view.opaque, 0.0);
  // [view.layer renderInContext:UIGraphicsGetCurrentContext()];
  if ([view respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) {
      BOOL isComplate = [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
  }else{
      [view.layer renderInContext:UIGraphicsGetCurrentContext()];
  }
  UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return img;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,166评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,801评论 4 61
  • 亲爱的代理们: 你们好!很高兴能和你们一起并肩做战这么长时间,也许我们素未谋面,可我依然记得我们第一次聊天内容! ...
    清泉之水阅读 2,939评论 0 1
  • Description In Act I, Leporello is telling Donna Elvira a...
    Gitfan阅读 1,864评论 0 0
  • 这套兄妹组合小瓷件儿里的哥哥是典型的朋克卡通风,妹妹却是标准的闺秀淑女风。 于是哥哥说: 对于急躁的人(类)只需为...
    小女巫惠惠阅读 3,424评论 1 3

友情链接更多精彩内容