zoukankan      html  css  js  c++  java
  • 关于设置shadowPath的重要性


    这是超级容易添加阴影到iOS中的任何视图。所有您需要做的是

    1. 添加QuartzCore框架到项目中(如果不存在的话)
    2. 导入QuartzCore到您的执行文件
    3. 添加一行如[myView.layer setShadowOpacity:0.5]

    瞧,你的看法现在有一个阴影。

    然而,这种最简单的添加阴影的方法在性能上却不是最佳途径。如果对这个添加阴影的View(如果它是一个UITableViewCell的一部分)做一些动画,您可能会注意到在动画不是很流畅,有卡顿。这是因为计算阴影需要Core Animation做一个离屏渲染,以View准确的形状确定清楚如何呈现其阴影。

    要说服自己这一点,打开在模拟器的调试菜单的颜色屏幕外渲染的选项。

    另外,针对一个物理设备上,启动仪器(⌘I),选择核心动画模板,选择核心动画仪器,并检查彩色屏幕外渲染的黄色选项。

    然后在模拟器(或您的设备上),你会看到这样的事情:

    这表明东西(在我们的情况下,阴影),花费更多的时间在离屏渲染。

    速战速决

    只要你提前告诉CoreAnimation你要渲染的View的形状Shape,就会减少离屏渲染计算

    [myView.layer setShadowPath:[[UIBezierPath 
        bezierPathWithRect:myView.bounds] CGPath];

    加上这行代码,就减少离屏渲染时间,大大提高了性能

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    USB子系统gadget analyse
    关于嵌入式的学习和职业发展
    编译JNI动态库so
    Linux串口编程
    i2c_get_clientdata和to_i2c_client 的使用获取平台设备
    Kbuild 编译系统分析
    解决QPST 出现的 "服务器正在运行" 的 下载错误.
    Msm 高通平台配置记录之一
    USB Skeleton driver 分析记录
    网站应用数据库相关 过滤类
  • 原文地址:https://www.cnblogs.com/zsw-1993/p/4879427.html
Copyright © 2011-2022 走看看