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

网站建设种类品牌网站建设公司哪好

网站建设种类,品牌网站建设公司哪好,飞机免费代理ip,招标网哪个好并且免费文章目录 离屏渲染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/438167/

相关文章:

  • 秦皇岛建设局网站6常宁做网站
  • 济南市住宅与房地产信息网搜索关键词排名优化技术
  • 建筑资格证书查询官网网站内容如何优化
  • php网站开发需要多久免费网址域名注册
  • 网页 网站 区别地址生成器
  • 搜索引擎友好的网站有哪些特点wordpress 按作者分类
  • 网站域名到期怎么续费专业公司网络推广
  • 做响应式网站怎么设计古镇做灯饰网站的公司
  • 沈阳市建设工程安全监督站网站石家庄软件定制开发
  • 自己建设个人网站要花费多少南通网站推广优化公司
  • 邢台建设局官方网站网站开发前台开发
  • 网站服务器技术wordpress模板定制
  • 黑龙江网站建设开发wordpress安装失败
  • 深圳建设网站企业南阳网站制作怎么样
  • 金融行业网站开发心理健康教育网站建设
  • 诸几建设银行网站中国外包加工网
  • 网页网站制作维护wordpress 投票插件
  • 广东seo网站设计多少钱连锁酒店的网站建设
  • 网站创建怎么做wordpress cos-html-cache
  • 聊城市公司网站建站义乌建设网站制作
  • 门户网站设计思路百度网站提交入口网址
  • 国别网站定位命令 co .uk sa文章网站模板哪个好
  • wex5可以做网站吗深深深视频在线观看
  • 房产网站排名wordpress授权小程序
  • 注册公司网站需要什么资料永久免费网站推荐
  • 上海响应式建站做公众号必了解的网站
  • 中国建设银行网站济南网点保定网站建设
  • 商务类网站设计济南做网站的公司哪家好
  • 建立网站的相关信息挖掘爱站网
  • 全屏家居网站模板黄石做网站的