私は、私のビューの中心の周りを周回する円を持っています。それは360度連続して回転します。これは私の次のコードを使用して正常に動作します:UIImageViewの軌道回転と変換
-(void) rotateGear: (UIImageView*) view angle:(int)angle arc:(float)arc
{
float x1 = view.frame.origin.x + view.frame.size.width/2;
float y1 = view.frame.origin.y + view.frame.size.height/2;
float radius = sqrtf(powf(160.0f - x1 ,2.0f) + powf(240.0f - y1, 2.0f));
float x = 160.0f + radius * (cos(arc + M_PI + (angle * (M_PI/180.0f))));
float y = 240.0f + radius * (sin(arc + M_PI + (angle * (M_PI/180.0f))));
view.frame = CGRectMake(x - view.frame.size.width/2, y - view.frame.size.height/2, view.image.size.width, view.image.size.height);
}
上記のコードは、パラメータに渡されたに基づいて新しい位置を計算し、それが中央に完璧な関係で動いているかのように見せること、新しい場所に画像を移動メインビューのすべてが完璧に動作します。
しかし、中心を回っているビュー/オーブも回転すると回転します。別のタイマーでは、私は試みます:
littleGear.transform =
CGAffineTransformRotate(CGAffineTransformIdentity, M_PI * (angle)/180.0);
ものは狂っています。オーブはフリップ、フロッピング、折りたたみ、および画面全体の曲がりを開始します。私が最初のコードを取り除くと、軌道の回転がうまくいきます。
本質的に、それらは組み合わされるまで両方とも正常に動作し、その後すべてがナットになります。私の最初の推測は、行列がすべてのローテーションでうまくいっているということですが、それを解決する方法がわかりません。何か案は?
あなたはそれを釘付けにしました!ありがとうございました! –