你能在iPhone中使用石英制作渐变动画吗?

你能在iPhone中使用石英制作渐变动画吗?,iphone,animation,core-animation,gradient,quartz-2d,Iphone,Animation,Core Animation,Gradient,Quartz 2d,我是iPhone开发新手,目前正在尝试重新创建一个为Silverlight开发的图表工具 目前,我正在使用渐变来“填充”一个矩形,该矩形表示图表中的一个条形图。是否可以设置此渐变的动画,以便在用户触摸图表中的条形图时更改颜色 我已经浏览了Apple提供的核心动画指南,但没有看到针对渐变的属性。我想我可以使用过渡在两个矩形之间淡入淡出,其中一个有我的起始渐变,第二个有“触摸”版本,但这显然意味着为每个条绘制多个矩形对象,我假设额外的性能开销 有什么想法吗?是的,确实可以使用核心动画设置渐变动画 3

我是iPhone开发新手,目前正在尝试重新创建一个为Silverlight开发的图表工具

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

我已经浏览了Apple提供的核心动画指南,但没有看到针对渐变的属性。我想我可以使用过渡在两个矩形之间淡入淡出,其中一个有我的起始渐变,第二个有“触摸”版本,但这显然意味着为每个条绘制多个矩形对象,我假设额外的性能开销


有什么想法吗?

是的,确实可以使用核心动画设置渐变动画

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

不久前,还有一些在底部链接的示例代码

在这个示例中,我通过构建一个cabasicaniation来设置渐变的动画,但是您也可以通过将新的颜色数组传递给渐变层的colors属性来隐式地设置更改的动画。除非有理由不使用隐式动画,否则请使用隐式动画


检查一下,如果您对要制作动画的UI有任何疑问,请告诉我。

谢谢Joe-它现在正按照计划工作。我有点困惑,因为我不知道你必须设置图层的框架。花了很多时间看一个空白的视图,直到我意识到我的渐变层的尺寸是0,0,0,0。。。如果你有时间的话,我有一个问题要问你——有可能在每一层中画出路径吗?我试着在每根横杆周围加上一个笔划。我所能做的就是在主视图上的一个矩形上添加一个笔划,而不是在每个层上。我假设这是因为图形上下文设置为UIView,而不是图层,但我找不到移动上下文的方法…是的,肯定是这样。对于渲染类似的东西,层实际上是更好的处理方式。CALayer具有cornerRadius、borderColor、borderWidth、backgroundColor等的内置属性。因此,设置一组图层并为每个图层指定不同的视觉属性非常容易,而无需使用任何图形上下文。签出CALayer文档中的这些属性。如果要在图层内部进行自定义石英绘图,可以对图层进行子类化,并实现-drawInContext:或设置一个代理来实现-drawLayer:inContext: