你可以在iPhone中使用Quartz动画渐变吗?

Car*_*and 3 iphone animation gradient core-animation quartz-2d

我是iPhone开发的新手,目前正忙着重新创建我为Silverlight开发的图表工具.

目前我正在使用渐变来"填充"表示图表中条形的矩形.是否可以为此渐变设置动画,以便在用户触摸图表中的条形时更改颜色.

我查看了Apple提供的核心动画指南,但看不到以渐变为目标的属性.我想我可以在两个rects之间使用转换淡入淡出,其中一个具有我的起始渐变,第二个具有'触摸'版本,但这意味着显然为每个条形图绘制多个rect对象,我假设额外的性能开销.

有任何想法吗?

Joe*_*ppo 11

是的,确实你可以用Core Animation动画渐变.

3.0中出现的CAGradientLayer类有一个很好的API,用于将渐变渲染到图层中,以及动画颜色和颜色停止变化.

我在这个课程上做了一个帖子,以及一些在底部链接的示例代码.

在示例中,我通过构建CABasicAnimation为渐变设置动画,但您也可以通过将新的颜色数组传递到渐变图层的colors属性来隐式地为变化设置动画.除非您有理由不使用隐式动画.

检查一下,如果您对要设置动画的UI有任何疑问,请告诉我.