当前位置: 首页 > news >正文

海南七星彩网站建设wordpress站点优化

海南七星彩网站建设,wordpress站点优化,百度不收录网站内页,南沙移动网站建设文章目录 离屏渲染UIView和CALayer关系GPU屏幕渲染有两种方式:产生离屏渲染的原因#xff1a;既然离屏渲染这么耗性能,为什么有这套机制呢?什么情况会离屏渲染#xff1f;既然离屏渲染这么不好#xff0c;为什么我们还要强制开启呢#xff1f;如何避免离屏渲染#xff1f… 文章目录 离屏渲染UIView和CALayer关系GPU屏幕渲染有两种方式:产生离屏渲染的原因既然离屏渲染这么耗性能,为什么有这套机制呢?什么情况会离屏渲染既然离屏渲染这么不好为什么我们还要强制开启呢如何避免离屏渲染1.圆角的优化2.shadow 离屏渲染 UIView和CALayer关系 UIView继承自UIResponder可以处理系统传递过来的事件如UIApplication、UIViewController、UIView以及所有从UIView派生出来的UIKit类。每个UIView内部都有一个CALayer提供内容的绘制和显示并且作为内部RootLayer的代理视图。CALayer继承自NSObject类负责显示UIView提供的内容contents。CALayer有三个视觉元素背景色、内容和边框其中内容的本质是一个CGImage。 GPU屏幕渲染有两种方式: 1.On-Screen Rendering (当前屏幕渲染) 指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区进行。 2.Off-Screen Rendering (离屏渲染) 指的是在GPU在当前屏幕缓冲区以外开辟一个缓冲区进行渲染操作。 当前屏幕渲染不需要额外创建新的缓存也不需要开启新的上下文相对于离屏渲染性能更好。但是受当前屏幕渲染的局限因素限制(只有自身上下文、屏幕缓存有限等)当前屏幕渲染有些情况下的渲染解决不了的就使用到离屏渲染。 产生离屏渲染的原因 苹果系统不能够一次的去处理视图需要一张一张的去处理视图那么就会需要开辟一个离屏缓存区去存储一张张处理好的视图开辟的这个离屏缓存区就会导致离屏渲染。 既然离屏渲染这么耗性能,为什么有这套机制呢? 有些效果被认为不能直接呈现于屏幕而需要在别的地方做额外的处理预合成。图层属性的混合体没有预合成之前不能直接在屏幕中绘制所以就需要屏幕外渲染。 什么情况会离屏渲染 为图层设置遮罩layer.mask将图层的layer.masksToBounds / view.clipsToBounds属性设置为true将图层layer.allowsGroupOpacity属性设置为YES和layer.opacity小于1.0为图层设置阴影layer.shadow *。为图层设置光栅化 layer.shouldRasterizetrue具有layer.cornerRadiuslayer.edgeAntialiasingMasklayer.allowsEdgeAntialiasing的图层 当然也不是所有的圆角都会导致离屏渲染文本任何种类包括UILabelCATextLayerCore Text等。使用CGContext在drawRect :方法中绘制大部分情况下会导致离屏渲染甚至仅仅是一个空的实现。 既然离屏渲染这么不好为什么我们还要强制开启呢 当一个图像混合了多个图层每次移动时每一帧都要重新合成这些图层十分消耗性能。当我们开启光栅化后会在首次产生一个位图缓存当再次使用时候就会复用这个缓存。但是如果图层发生改变的时候就会重新产生位图缓存。所以这个功能一般不能用于 UITableViewCell中cell的复用反而降低了性能。最好用于图层较多的静态内容的图形。而且产生的位图缓存的大小是有限制的一般是2.5个屏幕尺寸。在100ms之内不使用这个缓存缓存也会被删除。所以我们要根据使用场景而定。 如何避免离屏渲染 1.圆角的优化 1使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角 2、使用CAShapeLayer和UIBezierPath设置圆角 总的来说就是用CAShapeLayer的内存消耗少渲染速度快建议使用优化方案2。 2.shadow 对于shadow如果图层是个简单的几何图形或者圆角图形我们可以通过设置shadowPath来优化性能能大幅提高性能。示例如下 mageView.layer.shadowColor[UIColorgrayColor].CGColor; imageView.layer.shadowOpacity1.0; imageView.layer.shadowRadius2.0; UIBezierPath *path[UIBezierPathbezierPathWithRect:imageView.frame]; imageView.layer.shadowPathpath.CGPath;我们还可以通过设置shouldRasterize属性值为YES来强制开启离屏渲染。其实就是光栅化Rasterization。
http://www.yutouwan.com/news/266007/

相关文章:

  • 潍坊视频类网站建设网站公司怎么建站
  • 电商网站开发周期看空间
  • 大兴模版网站建设哪家好个人电影网站建设
  • 内江市规划建设教育培训中心网站宁波市网站建设制作费用
  • 新乡网站建设专业熊掌网络做导购网站要多少钱
  • 商业网站 模板wordpress 标题入库
  • 成都网站系统开发大通证券手机版下载官方网站下载
  • 教育网站开发用例图三类人员 网站开发
  • 网站建设公司咨html编辑器安卓版下载
  • wordpress网站正在建设中网站开发 实名认证需要备案吗
  • 建站报价怎么做淘宝网站的网页
  • 淘宝客网站做seo有用吗公司申请网站建设
  • 数据统计网站淄博网站建设卓迅网络
  • 设计出色的网站网站规划详细设计怎么写
  • 织梦 网站地图 样式怎么做网站渗透
  • 男女之间做那个事情很污的网站天津企业网络建站
  • 重庆网站制作教程aso优化报价
  • 自己建的网站如何推广网站建设 交单流程
  • 网站建设教学后记微信公众号开发软件
  • 做的网站一定要收录么买域名
  • 网站开发侵权高端品牌家具排名前十名
  • 国内外优秀网站设计找人做网站注意什么
  • 上海土地建设官方网站上海做网站最好的公司
  • wordpress支付宝微信南京网站优化公司
  • 网站外部链接黄埔营销型网站建设
  • 律师个人网站源码企业管理软件属于系统软件吗
  • 诸暨做网站理财平台网站建设
  • 网站建设专属名词建立微信商城网站
  • 企业网站的建设论文深圳摇号申请注册
  • 电商网站建设优化旅游网站怎么做