2012-04-20 32 views
3

我正在玩C4,似乎无法弄清楚为什么我的形状不动画。如果我创建了一个形状像这样:C4Shape,setFrame不改变形状的大小(C4Framework)

self.theShape = [C4Shape ellipse:CGRectMake(100, 100, 2, 2)]; 

...后来打电话

[theShape setFrame:CGRectMake(200, 200, 50,50)]; 

形状不会改变大小。实施建议它应该,但我没有看到它。有什么我做错了吗?是因为我没有更新画布吗?

回答

1

在C4中,在C4Shape对象上调用setFrame:不会缩放它。

原因在于改变CAShapeLayer视图的框架不会改变底层贝塞尔形状本身......不同于在图像上调用相同的东西。 UIKit的将缩放图像和其它内容,但不会规模贝济耶(据我所知)...

所以,如果它是一个矩形,请致电:

[theShape rect:aNewFrame] 

,或者如果它的椭圆形,拨打:

[theShape ellipse:aNewFrame] 

这种方法构造一个新的形状,然后利用核心动画能力隐含动画旧形状路径和新之间的过渡。

+0

啊,谢谢你的解释。现在正在工作。 – jamesco 2012-04-20 21:22:28