1

好的,所以我这样做是为了通过一系列颜色为 iOS 应用程序制作动画:

[UIView animateWithDuration:3.0 animations:^{
                gradient = CGGradientCreateWithColorComponents(colorSpace, colors, locations, number_of_locations);
                CGContextDrawRadialGradient(context, gradient, start, 0, end, sqrt((self.frame.size.width*self.frame.size.width)+(self.frame.size.height*self.frame.size.height)), kCGGradientDrawsBeforeStartLocation); 
        }];

它在大多数情况下都有效。每次我更改颜色时,它都会以完全相反的颜色闪烁。例如,当它即将从红色变为橙色时,它会闪烁绿色。社区,如何解决?:D

谢谢你。

4

1 回答 1

1

请改用 CAGradientLayer。该colors属性是可动画的。

您在上面使用的代码没有更改任何动画属性,并且在上下文中有点缺乏(双关语),所以我不确定它是如何“工作”的——它看起来不像一个有效的动画块。

于 2012-05-26T06:12:18.720 回答