在C4-c4框架中制作动画形状时的伪像

时间:2012-04-30 20:41:47

标签: ios c4

在C4中为形状设置动画时,形状的未定义预设特征(如线宽和填充色)也会生成动画。是否有解决方案或解决这个问题?

1 个答案:

答案 0 :(得分:0)

C4Shapes设置为使用默认颜色C4Red(用于strokeColor)和C4Blue(用于fillColor)。此外,默认animationDuration设置为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

我知道目前这有点粗糙,但是我们还没有在对象到达画布之前设置默认颜色。