zoukankan      html  css  js  c++  java
  • ios开发中view.layer.shouldRasterize = YES 的使用说明

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

    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,设置这个将会使滑动更加流畅。

  • 相关阅读:
    Binder之启动ServiceManager
    CameraMetaData
    Android JNI 使用的数据结构JNINativeMethod详解
    CameraCaptureSession
    深入理解Android相机体系结构之3---相机服务层
    Camera Service
    Camera相关代码路径
    Android打开ALOGV日志
    深度学习高分辨率遥感影像语义分割
    全自动Landsat影像温度反演软件开发
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733670.html
Copyright © 2011-2022 走看看