2012-06-23 50 views
0

我正在爲ipad構建一個會場佈局應用程序,該應用程序將使用不同類別的對象(桌子/椅子/舞臺區段等)供用戶添加到平面圖並進行調整。專用「旋轉」按鈕代碼

爲對象的平移和旋轉

在其他應用我已經使用UIgestures:

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer { 

CGPoint translation = [recognizer translationInView:self.view]; 
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y); 
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view]; 
} 

- (IBAction)rotateMe:(UIRotationGestureRecognizer *)recognizer{ 

recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation); 
recognizer.rotation = 0; 
} 

然而,對於此應用的對象將小於正常手指將允許多個觸摸手勢。

我想在視圖中選擇一個「旋轉」按鈕,當按下並保持時,只需單擊任意對象就可以自定義旋轉它。

或者如果有人能指導我更好的選擇?

回答

0

GitHub上有一個名爲KTOneFingerRotationGestureRecognizer的項目,它是一個使用單個手指進行旋轉的自定義旋轉手勢識別器。你碰到一個物體並旋轉它,就好像它的中心有一根軸。它可能適用於你,取決於你的形狀有多小。換句話說,您可能需要讓視圖稍微大一點(換句話說,添加一些填充)。

+0

感謝這@Duncan它肯定是我正在尋找的格式。但是,我在切換Button實現中將其切換爲OFF時出現問題。我認爲這是因爲編碼將旋轉方法添加到UIView,然後釋放?我不夠先進,無法知道如何對抗 - ? – RoshDamunki

0

應該相當簡單。輕觸旋轉按鈕將開啓旋轉,按下另一個對象將執行旋轉。使用CGAffineTransformMakeRotation進行旋轉。

yourObject.view.transform=CGAffineTransformMakeRotation(yourVariable*M_PI/180.0); 

增量yourVariable以任何角度你選擇它應該每一次,即由90增加會旋轉對象每次接觸的對象時旋轉90度位。

+0

我已將此用於更標準的90度旋轉。我需要的是一個更小的漸進式風格。 – RoshDamunki