在 C4 中对形状进行动画处理时,形状的未定义预设特征(例如线宽和填充色)也会进行动画处理。是否有解决此问题的方法或解决方案?
问问题
92 次
1 回答
0
C4Shapes 设置为使用默认颜色 C4Red(用于 strokeColor)和 C4Blue(用于 fillColor)。此外,默认动画持续时间设置为 0.25 秒。
从技术上讲,正在发生的事情是,C4Shape 正在使用 C4Red / C4Blue 颜色构建自己,然后在它碰到画布时立即启动从这些颜色到任何新颜色的动画。
要解决这些问题并生成您自己的设置,您可以将 C4Shape 子类化并将着色/计时/其他属性更改添加到您的类自己的 init 方法中。
在 MyShape 类的实现(.m 文件)中,我有:
@implementation MyShape
-(id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if(self != nil) {
self.animationDuration = 0.0f;
self.fillColor = [UIColor purpleColor];
self.strokeColor = [UIColor greenColor];
}
return self;
}
@end
...我的 C4WorkSpace.m 看起来像这样:
#import "C4WorkSpace.h"
#import "MyShape.h"
@implementation C4WorkSpace
-(void)setup {
MyShape *ms = [MyShape new];
[ms ellipse:CGRectMake(100, 100, 100, 100)];
[self.canvas addShape:ms];
}
@end
我知道目前这有点粗糙,但我们还没有在对象碰到画布之前设置默认颜色。
于 2012-04-30T21:15:37.500 回答