私はかなり不可解な問題を抱えています。回転する関数にラジアンで角度を指定する UIImageView があります。正常に動作しますが、角度を定数でオフセットしたいと考えています。面白いことに、M_PI に対してオフセット変数に何らかの除算または乗算を行うと、画像ビューが歪んで回転しませんか??
- (void)rotateDialToAngle: (CGFloat)angle {
CGFloat offsetAngle = -0.075f * (2.0f * M_PI);
offsetAngle += angle;
if(offsetAngle >= M_PI * 2)
offsetAngle -= M_PI * 2;
if(offsetAngle < 0)
offsetAngle += (M_PI * 2);
self.clockDialImageView.transform = CGAffineTransformMakeRotation(offsetAngle);
}
上記のコードは意図した状態です。offSetAngle の計算を M_PI に置き換えると、回転を 180 度オフセットする動作が期待されます。M_PI / 2 などに置き換えると、スキュー動作が発生します。
if ステートメントは、角度を 360 以下の正の角度に固定するために使用されます。これらは期待どおりに機能します。
注: これは、画像ビューで任意の形式の変換を行うコード内の唯一の関数です。
注 2: ビューは傾いていますが、回転は適用されています。
編集:コード内の追加の変換では、問題が単一行のコードとその行の定数に対する操作にどのように分離されるかが説明されていません。編集:他の変換を探しました-何もありません。CMPopTipView はこのコントローラーの外部にあり、使用されません。DejalActivityView と同様です。
他のアイデアはありますか?