ios开发中view.layer.shouldRasterize = YES 的使用说明
来源:互联网 发布:淘宝定制商品规则 编辑:程序博客网 时间:2024/06/15 16:44
在做一个NavigationController push 子页面时,发现push和pop时很卡,研究了一大阵子后,发现在子页面里影响UI流畅的只有UIImageView的圆角设置;然后我就关闭了圆角,重新运行果然流畅多了。但是产品的需求必须加圆角,没办法,去stackoverflow找方案,发现方法都大同小异,只不过是绘制上做一些优化。后来查看layer的头文件,最后找到了一个牛B的属性:
/* When true, the layer is rendered as a bitmap in its local coordinate * space ("rasterized"), then the bitmap is composited into the * destination (with the minificationFilter and magnificationFilter * properties of the layer applied if the bitmap needs scaling). * Rasterization occurs after the layer's filters and shadow effects * are applied, but before the opacity modulation. As an implementation * detail the rendering engine may attempt to cache and reuse the * bitmap from one frame to the next. (Whether it does or not will have * no affect on the rendered output.) * * When false the layer is composited directly into the destination * whenever possible (however, certain features of the compositing * model may force rasterization, e.g. adding filters). * * Defaults to NO. Animatable. */ @property BOOL shouldRasterize; /* The scale at which the layer will be rasterized (when the * shouldRasterize property has been set to YES) relative to the * coordinate space of the layer. Defaults to one. Animatable. */ @property CGFloat rasterizationScale;
当shouldRasterize设成true时,layer被渲染成一个bitmap,并缓存起来,等下次使用时不会再重新去渲染了。实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时shouldRasterize = yes,下次就只是简单的从渲染引擎的cache里读取那张bitmap,节约系统资源。
额外收获:如果在滚动tableView时,每次都执行圆角设置,肯定会阻塞UI,设置这个将会使滑动更加流畅。
0 0
- ios开发中view.layer.shouldRasterize = YES 的使用说明
- ios开发中view.layer.shouldRasterize = YES 的使用说明
- ios开发中view.layer.shouldRasterize = YES 的使用说明
- view.layer.shouldRasterize = YES(光栅化)的使用 及图片性能整理
- iOS-self.layer.shouldRasterize属性
- iOS中View和layer的区别以及layer用法
- iOS开发--利用layer设置View的边框
- iOS开发中CALayer的详细使用说明
- iOS 利用mask layer 使view中扣掉一块露出下边的view
- iOS 利用mask layer 使view中扣掉一块露出下边的view
- iOS 利用mask layer 使view中扣掉一块露出下边的view
- shouldRasterize
- IOS开发:Swift中附属脚本的使用说明
- iOS中bundle的使用说明
- iOS中UIView layer的对应关系
- iOS中Layer的认识和使用
- ios开发之webView.scalesPageToFit = YES后 加载页面遇见表格显示很小的解决方法
- linux中ONBOOT=yes的含义
- Ugly Number I and II
- 常用正则
- 设计模式之状态模式
- Android基础知识整合篇——广播接收器知识点
- iOS中的cookie使用
- ios开发中view.layer.shouldRasterize = YES 的使用说明
- Codeforces 625D Finals in arithmetic(构造)
- note11闭包 匿名函数
- Android OTA升级原理和流程分析
- Middle-题目54:39. Combination Sum
- 关于android R.layout 中找不到已存在的布局文件问题的解决
- 【CG物理模拟系列】流体模拟--粒子法之SPH(实现)
- Docker入门指南
- Matplotlib 教程