美文网首页
iOS离屏渲染

iOS离屏渲染

作者: jokerlee | 来源:发表于2020-08-04 23:28 被阅读0次

一.在iOS开发的过程当中或多或少都会碰到离屏渲染那么造成离屏渲染的原因有以下几点 (总结不全望见谅)

1.使用了 mask 的 layer (layer.mask)
2.需要进行裁剪的 layer (layer.masksToBounds / view.clipsToBounds)
3.设置了组透明度为 YES,并且透明度不为 1 的 layer (layer.allowsGroupOpacity/ layer.opacity)
4.添加了投影的 layer (layer.shadow*)
5.采用了光栅化的 layer (layer.shouldRasterize)
6.绘制了文字的 layer (UILabel, CATextLayer, Core Text 等)

二.渲染流程

正常渲染流程


image.png

离屏渲染流程


image.png
圆角触发离屏渲染
image.png

view.layer.masksToBounds = true // 触发离屏渲染的原因


image.png

一下为处理圆角的手段

_imageView.clipsToBounds=YES;
_imageView.layer.cornerRadius=4.0;
 -(UIImage*) circleImage:(UIImage*) image withParam:(CGFloat) inset {  
      UIGraphicsBeginImageContext(image.size);  
      CGContextRef context = UIGraphicsGetCurrentContext();  
      CGContextSetLineWidth(context, 2);  
      CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);  
      CGRect rect = CGRectMake(inset, inset, image.size.width - inset * 2.0f, image.size.height - inset * 2.0f);  
      CGContextAddEllipseInRect(context, rect);  
      CGContextClip(context);  
        
     [image drawInRect:rect];  
     CGContextAddEllipseInRect(context, rect);  
     CGContextStrokePath(context);  
     UIImage *newimg = UIGraphicsGetImageFromCurrentImageContext();  
     UIGraphicsEndImageContext();  
     return newimg;  
 } 

相关文章

  • iOS离屏渲染

    iOS-离屏渲染详解关于iOS离屏渲染的深入研究关于离屏渲染这两片文章分析的很详细。 渲染过程 根据渲染流水线示意...

  • iOS离屏渲染解析

    iOS离屏渲染解析

  • iOS圆角的离屏渲染,你真的弄明白了吗

    iOS圆角的离屏渲染,你真的弄明白了吗iOS圆角的离屏渲染,你真的弄明白了吗

  • iOS-离屏渲染探索

    iOS项目性能优化时,不得不提到离屏渲染,为了提升性能,我们要求尽量减少离屏渲染的发生。 那,什么是离屏渲染?离屏...

  • iOS离屏渲染的检测和优化

    在iOS离屏渲染介绍了离屏渲染的逻辑和原理,我们知道离屏渲染对于性能会有较大的消耗,那么开发中怎么避免产生离屏渲染...

  • iOS离屏渲染相关值得看的博客

    博客链接 iOS离屏渲染优化 绘制像素到屏幕上 关于iOS离屏渲染的深入研究 https://texturegro...

  • 三、iOS离屏渲染

    iOS离屏渲染 圆角不一定会造成离屏渲染 GPU屏幕渲染方式 On-Screen Rendering 当前屏幕渲染...

  • iOS性能优化之图片圆角

    在Apple官方文档中多次提出开发时,避免触发离屏渲染效果.离屏渲染触发的情况有很多种,具体可参考iOS离屏渲染相...

  • 离屏渲染

    离屏渲染是在iOS开发过程中脱离不了的话题,那么什么是离屏渲染以及哪些情况会导致离屏渲染呢?以及离谱渲染有哪些优势...

  • iOS中的离屏渲染相关

    开场白 本文简单介绍了iOS中离屏渲染的相关内容呢。 1.什么是离屏渲染: 要了解离屏渲染,我们先简单了解一下非离...

网友评论

      本文标题:iOS离屏渲染

      本文链接:https://www.haomeiwen.com/subject/vefvrktx.html