我有一圈繞我的視圖中心的軌道。它不斷旋轉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);
事情變得瘋狂。球體開始在屏幕上翻轉,翻轉,摺疊和彎曲。如果我刪除第一個代碼,軌道旋轉,它工作正常 - 它旋轉完美的地方。
從本質上講,它們都能正常工作,直到合併,然後一切都變得瘋狂。我的第一個猜測是矩陣在所有旋轉中都變得清晰起來,但我不知道如何解決它。有任何想法嗎?
你釘了它!謝謝! –