2012-04-20 4 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のビューのフレームを変更しても、基礎となるベジェシェイプ自体は変更されないからです。画像上で同じものを呼び出すのとは異なります。 、

[theShape rect:aNewFrame] 

またはその楕円場合:UIKitはそれはRECTだ場合、呼び出し、だから... ...

をイメージ、その他のコンテンツを拡大縮小しますが、(私の知る限りでは)ベジエをスケーリングしません呼び出し:

[theShape ellipse:aNewFrame] 

このアプローチでは、新しい形状を作成して、暗黙的に古いシェイプパスと新しいものの間の遷移をアニメーション化するコアアニメーションの能力を活用しています。

+0

ああ、説明のおかげで。それは今働いている。 – jamesco

関連する問題