0

できる限り問題を単純化しようと思います。

2つのUIViewImageをアニメーション化するためのアニメーションブロックがあります。

開始する前に、UIImageViewsの長方形を取得します。

私は変更します:両方のorigin.x + = 40

アニメーションブロックでは、これら2つのUIImageビューのフレームを変更された長方形に設定しました。

できます。

さて、これが問題です。長方形の1つについては、size.width-= 20も変更して、幅が少し狭くなるようにします。

結果:縮小と移動は行われますが、2番目のUIImageビューは移動しなくなります。これは、要素の幅/高さをアニメーション化するかのように、アニメーションブロック内の他のすべてのアニメーションをキャンセルします。

理由がわかりません。私はこれを2日間続けましたが、役に立ちませんでした。誰かがこのようなものに遭遇したことがありますか?iOS 5.1Xcode4.3.2を使用しています

4

1 に答える 1

1

frameプロパティはアニメーション化できますが、ビューをアニメーション化するための推奨される方法ではありません。

代わりに、CGAffineTransformを適用してUIImageViewのプロパティを変換することをお勧めします。

ドキュメントのリンクは次のとおりです:https ://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGAffineTransform/Reference/reference.html

あなたの場合、画像ビューに縮尺と平行移動変換を適用します。2つの変換を適用する場合は、最初にそれらを1つに結合する必要があることに注意してください。

于 2012-05-15T16:41:29.010 に答える