我正在玩C4,似乎无法弄清楚为什么我的形状没有动画。如果我创建一个这样的形状:
self.theShape = [C4Shape ellipse:CGRectMake(100, 100, 2, 2)];
...稍后再打电话
[theShape setFrame:CGRectMake(200, 200, 50,50)];
形状不会改变大小。实施表明它应该,但我没有看到它。有什么我做错了吗?是因为我没有更新画布吗?
答案 0 :(得分:1)
在C4中,在C4Shape对象上调用setFrame:
将不会缩放它。
原因是改变CAShapeLayer视图的框架不会改变底层bezier形状本身......不像在图像上调用相同的东西。 UIKit将缩放图像和其他内容,但不会缩放贝塞尔(据我所知)...
所以,如果它是一个矩形,请致电:
[theShape rect:aNewFrame]
或如果是椭圆形,请致电:
[theShape ellipse:aNewFrame]
此方法构造一个新形状,然后利用核心动画功能隐式地为旧形状路径和新形状路径之间的过渡设置动画。