2011-07-26 12 views
0

UIViewContentModeScaleAspectFillのcontentModeでイメージを表示しているUIImageViewがあります。iphone - UIImageViewのフレームをCGAffineTransformMakeScaleアニメーション中に設定したときのStrangの動作

次に、CGAffineTransformMakeScaleのアニメーション(約30秒)をUIImageViewに関連付けます。

imageView.transform = CGAffineTransformMakeScale(1,1); 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:30]; 
imageView.transform = CGAffineTransformMakeScale(1.9,1.9); 
[UIView commitAnimations]; 

30秒後、アニメーションが終了すると、別のイメージをimageViewに設定してアニメーションを再開します。

すべては問題ありません。しかし、UIImageViewを回転させて、ユーザーのデバイス方向の選択に合わせようとすると、ワイヤードになります。

ユーザーが向きを変えようとしているときに、UIImageViewのフレームをCGRectMake(0、0、768、1004)またはCGRectMake(0、0、1024、748)に設定します。

奇妙なことがある:

アニメーションは、それは結構ですしながら、UIImageViewのフレームが変更された場合。しかし、次の画像が来てアニメーションの新しいラウンドを開始すると、UIImageViewは突然画面の中央で小さくなり(フルスクリーンになるはずです)、通常のようにズームインのアニメーションが開始されました。 。

UIImageViewに変換されている間、どのようにフレームや向きを制御するか教えてもらえますか?

私はこれが間違っていたと推測しています。 frameプロパティの

おかげ

答えて

6

quothがthe documentation

警告:transformプロパティが恒等変換ではない場合、このプロパティの値が定義されていないため、無視されるべきです。

あなたが変換を使用している場合は、おそらく、代わりにcenterboundsいじりされなければなりません。

1

変換時にフレームプロパティが定義されていません。この場合、フレームの代わりに境界を使用してください。

関連する問題