文档章节

ios开发中view.layer.shouldRasterize = YES 的使用说明

SoulJa
 SoulJa
发布于 2017/01/04 09:59
字数 429
阅读 4
收藏 0

在做一个NavigationController push 子页面时,发现push和pop时很卡,研究了一大阵子后,发现在子页面里影响UI流畅的只有UIImageView的圆角设置;然后我就关闭了圆角,重新运行果然流畅多了。但是产品的需求必须加圆角,没办法,去stackoverflow找方案,发现方法都大同小异,只不过是绘制上做一些优化。后来查看layer的头文件,最后找到了一个牛B的属性:

[cpp] view plaincopy

  1. /* When true, the layer is rendered as a bitmap in its local coordinate 
  2.  * space ("rasterized"), then the bitmap is composited into the 
  3.  * destination (with the minificationFilter and magnificationFilter 
  4.  * properties of the layer applied if the bitmap needs scaling). 
  5.  * Rasterization occurs after the layer's filters and shadow effects 
  6.  * are applied, but before the opacity modulation. As an implementation 
  7.  * detail the rendering engine may attempt to cache and reuse the 
  8.  * bitmap from one frame to the next. (Whether it does or not will have 
  9.  * no affect on the rendered output.) 
  10.  * 
  11.  * When false the layer is composited directly into the destination 
  12.  * whenever possible (however, certain features of the compositing 
  13.  * model may force rasterization, e.g. adding filters). 
  14.  * 
  15.  * Defaults to NO. Animatable. */  
  16.   
  17. @property BOOL shouldRasterize;  
  18.   
  19. /* The scale at which the layer will be rasterized (when the 
  20.  * shouldRasterize property has been set to YES) relative to the 
  21.  * coordinate space of the layer. Defaults to one. Animatable. */  
  22.   
  23. @property CGFloat rasterizationScale;  

当shouldRasterize设成true时,layer被渲染成一个bitmap,并缓存起来,等下次使用时不会再重新去渲染了。实现圆角本身就是在做颜色混合(blending),如果每次页面出来时都blending,消耗太大,这时shouldRasterize = yes,下次就只是简单的从渲染引擎的cache里读取那张bitmap,节约系统资源。

 

额外收获:如果在滚动tableView时,每次都执行圆角设置,肯定会阻塞UI,设置这个将会使滑动更加流畅。

本文转载自:http://blog.csdn.net/feixiang_song/article/details/22787417

SoulJa
粉丝 31
博文 183
码字总数 32359
作品 0
武汉
程序员
私信 提问
学习如何针对iOS 7进行开发?

  iOS 7已经发布了六个测试版,除了beta 6进行了小幅修正外,其他几个测试版都有不小的改动。昨天有消息说苹果将在9月10日发布iOS 7正式版,那么GM版很快将会与开发者见面。在iOS 7来临前夕...

fangzhou99
2013/09/17
426
0
关于 fir.im 你可能不知道的实用小工具

大家可能都知道 fir.im 是做测试发包的,上传你的 IPA/APK, 测试用户可以通过一个短链接和二维码就可快速安装测试。 除了基本的发包功能即应用上传下载外,fir.im 还为提高发包体验提供了一系...

风起云飞fir_im
2015/11/16
348
0
iOS Universal Application 支持IPHONE和IPAD的应用设置

//实现 320180 640960 7681024 15362048 四种分辨率的图片加载 //在AppDelegate中把起用高清的代码注释去掉 //if( ! [director enableRetinaDisplay:YES] ) //CCLOG(@"Retina Display Not su......

慎道
2012/03/20
1K
1
浅谈iOS开发中的对象归档

iOS提供的数据持久化方式有:SQLiteCoreData属性列表、NSUserDefault对象归档。 这里来简单介绍下iOS开发中的对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化...

泊菜
2014/11/27
4K
8
iOS基础深入补完计划--NSURLSession使用详解(附Demo)

目录 前言 API Demo 前言 本文主要是把NSURLSession以及NSURLSessionTask相关的代理方法全部整理了一下。 旨在大体了解在一个iOS网络请求中、一个任务究竟经理了什么。 而我们、又能做些什么...

kirito_song
2018/05/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
9
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部