画像が歪むことなく UIImageView で画像を回転させる方法を見つけるために、インターネット全体を検索しました。私がテストした例はどれもうまくいきませんでした。したがって、ここに特定の質問を投稿する必要があります。
ローテーションの私のコードを以下に示します。結果は、リンク先の画像に表示されます (担当者が 5 歳未満の場合、投稿に画像を添付できませんでした)。角度の値を入力すると、画像は回転後に画像がどのようになるかを示しています。
回転は、0、90、180、および 270 度で正常に機能します。それ以外はすべてイメージをゆがめます。
self rotateImage:_compassScale duration:1 curve:UIViewAnimationCurveEaseIn degrees:(CGFloat)bearing];
.
- (void)rotateImage:(UIImageView *)image duration:(NSTimeInterval)duration curve:(int)curve degrees:(CGFloat)degrees
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve:curve];
[UIView setAnimationBeginsFromCurrentState:YES];
CGAffineTransform transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(-degrees));
image.transform = transform;
[UIView commitAnimations];
}
URL を Im1、Im4、Im5 に変更すると、さらに 3 つの画像があります。担当者は、2 つ以上のリンクを投稿することを許可しませんでした。
多くの作業を行った結果、制約が歪曲に関係していることがわかりました。NESWリング(コンパスローズ?)は、コンパスフレームである別の画像の中心にある画像です。これらの画像とともに、画像の中央にテキスト フィールドがあります。
NESW リングを画面上の別の場所にドラッグしても、画像はゆがみません。しかし、代わりに画面上を動き回ります。
3 つのアイテムすべてを移動し、画面上の元の座標にドラッグして戻しました。スキューはなくなりました。しかし、テキストフィールドで角度を変更すると、両方の画像の位置が少し変わり、リングの位置の変更がフレームの位置シャンデに接続されているようには見えません。奇妙なのは、コンパス フレームを動かすコードがないことです。
これに対抗する方法はありますか?