3

在 C4 中对形状进行动画处理时,形状的未定义预设特征(例如线宽和填充色)也会进行动画处理。是否有解决此问题的方法或解决方案?

4

1 回答 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 回答