在C4中为形状设置动画时,形状的未定义预设特征(如线宽和填充色)也会生成动画。是否有解决方案或解决这个问题?
答案 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
我知道目前这有点粗糙,但是我们还没有在对象到达画布之前设置默认颜色。