您的位置:首页 > 移动开发 > Objective-C

关于设置shadowPath

2014-04-04 11:20 281 查看
这是超级容易添加阴影到iOS中的任何视图。所有您需要做的是

添加QuartzCore框架到项目中(如果不存在的话)

导入QuartzCore到您的执行文件

添加一行如
[myView.layer
setShadowOpacity:0.5]


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



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

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



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



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



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


速战速决

只要你提前告诉CoreAnimation你要渲染的View的形状Shape,就会减少离屏渲染计算
[myView.layer setShadowPath:[[UIBezierPath
bezierPathWithRect:myView.bounds] CGPath];


加上这行代码,就减少离屏渲染时间,大大提高了性能
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios objective-c 动画