关于设置shadowPath
2014-04-04 11:20
281 查看
这是超级容易添加阴影到iOS中的任何视图。所有您需要做的是
添加QuartzCore框架到项目中(如果不存在的话)
导入QuartzCore到您的执行文件
添加一行如
瞧,你的看法现在有一个阴影。
然而,这种最简单的添加阴影的方法在性能上却不是最佳途径。如果对这个添加阴影的View(如果它是一个UITableViewCell的一部分)做一些动画,您可能会注意到在动画不是很流畅,有卡顿。这是因为计算阴影需要Core
Animation做一个离屏渲染,以View准确的形状确定清楚如何呈现其阴影。
要说服自己这一点,打开在模拟器的调试菜单的颜色屏幕外渲染的选项。
另外,针对一个物理设备上,启动仪器(⌘I),选择核心动画模板,选择核心动画仪器,并检查彩色屏幕外渲染的黄色选项。
然后在模拟器(或您的设备上),你会看到这样的事情:
这表明东西(在我们的情况下,阴影),花费更多的时间在离屏渲染。
只要你提前告诉CoreAnimation你要渲染的View的形状Shape,就会减少离屏渲染计算
加上这行代码,就减少离屏渲染时间,大大提高了性能
添加QuartzCore框架到项目中(如果不存在的话)
导入QuartzCore到您的执行文件
添加一行如
[myView.layer setShadowOpacity:0.5]
瞧,你的看法现在有一个阴影。
然而,这种最简单的添加阴影的方法在性能上却不是最佳途径。如果对这个添加阴影的View(如果它是一个UITableViewCell的一部分)做一些动画,您可能会注意到在动画不是很流畅,有卡顿。这是因为计算阴影需要Core
Animation做一个离屏渲染,以View准确的形状确定清楚如何呈现其阴影。
要说服自己这一点,打开在模拟器的调试菜单的颜色屏幕外渲染的选项。
另外,针对一个物理设备上,启动仪器(⌘I),选择核心动画模板,选择核心动画仪器,并检查彩色屏幕外渲染的黄色选项。
然后在模拟器(或您的设备上),你会看到这样的事情:
这表明东西(在我们的情况下,阴影),花费更多的时间在离屏渲染。
速战速决
只要你提前告诉CoreAnimation你要渲染的View的形状Shape,就会减少离屏渲染计算[myView.layer setShadowPath:[[UIBezierPath bezierPathWithRect:myView.bounds] CGPath];
加上这行代码,就减少离屏渲染时间,大大提高了性能
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Gifski:一个跨平台的高质量 GIF 编码器
- 模仿动画的放大缩小容器
- js排序动画模拟-插入排序
- JQuery动画和停止动画实例代码
- Jquery 自定义动画概述及示例
- 基于jquery的动画效果代码
- 锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
- 基于Jquery的温度计动画效果
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 探讨Android与iOS,我们将何去何从?
- Android开发之图形图像与动画(五)LayoutAnimationController详解
- VC实现图片拖拽及动画的实例
- IOS 身份证校验详细介绍及示例代码
- iOS NSDate中关于夏令时的坑
- Objective-C 消息传递机制详解
- iOS内存错误EXC_BAD_ACCESS的解决方法