我是 iPhone 开发的新手,目前正在重新创建我为 Silverlight 开发的图表工具。
目前我正在使用渐变来“填充”一个表示图表中条形的矩形。是否可以对此渐变进行动画处理,以便在用户触摸图表中的条时改变颜色。
我查看了 Apple 提供的核心动画指南,但看不到针对渐变的属性。我想我可以使用过渡在两个矩形之间淡入淡出,其中一个具有我的起始渐变,第二个具有“触摸”版本,但这显然意味着为每个条绘制多个矩形对象,我假设额外的性能开销。
有任何想法吗?
我是 iPhone 开发的新手,目前正在重新创建我为 Silverlight 开发的图表工具。
目前我正在使用渐变来“填充”一个表示图表中条形的矩形。是否可以对此渐变进行动画处理,以便在用户触摸图表中的条时改变颜色。
我查看了 Apple 提供的核心动画指南,但看不到针对渐变的属性。我想我可以使用过渡在两个矩形之间淡入淡出,其中一个具有我的起始渐变,第二个具有“触摸”版本,但这显然意味着为每个条绘制多个矩形对象,我假设额外的性能开销。
有任何想法吗?
是的,您确实可以使用 Core Animation 为渐变设置动画。
在 3.0 中出现的 CAGradientLayer 类有一个很好的 API,用于将渐变渲染到图层中,以及动画颜色和颜色停止变化。
不久前,我在这门课上发表了一篇文章,以及一些链接在底部的示例代码。
在示例中,我通过构建 CABasicAnimation 来为渐变设置动画,但是您也可以通过将新的颜色数组传递给渐变层的颜色属性来隐式地为更改设置动画。除非您有理由不这样做,否则请使用隐式动画。
检查一下,如果您对尝试制作动画的 UI 有任何问题,请告诉我。