2011-11-01 69 views
0

我已經將UIView作爲包含圖標(UIImageView),名稱(UILabel)和ID(UILabel)的頭像對象進行了子類化。根據X,Y座標的方向,我想讓圖標旋轉。例如,說orientation.X = 1和orientation.Y = 1會給45度角。 X和Y可以是-1和1之間的任何值。iOS - 基於X,Y方向旋轉UIImageView

我不知道它是如何在數學上計算的,也沒有可可API要求它。任何想法從哪裏開始?

回答

0

用於平滑我增加了一個動畫:

- (void)rotateView:(UIView *)view withDuration:(NSTimeInterval)duration andRadians:(CGFloat)radians 
{ 
    // Setup the animation 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:duration]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
    [UIView setAnimationBeginsFromCurrentState:YES]; 

    // The transform matrix 
    CGAffineTransform transform = CGAffineTransformMakeRotation(radians); 
    view.transform = transform; 

    // Commit the changes 
    [UIView commitAnimations]; 

} 

編輯:

您需要創建自己的旋轉矩陣其他角度。

How rotation matrix works

here如何在Objective-C創建一個自定義的仿射變換

希望這有助於。

+0

我不想讓圖像繞中心旋轉,因爲它將圖像擰緊 – KaiserJohaan

+0

我添加了我的帖子,希望它有幫助。 – Justin

0

您需要查看三角函數 - 特別是acosasin

This article可能是有幫助的。

+0

任何好的庫來計算這個? – KaiserJohaan