专用“旋转”按钮的代码

时间:2012-06-23 21:37:29

标签: objective-c ipad xcode4.2

我正在为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;
}

然而,此应用程序的对象将比正常手指小,允许多个触摸手势。

我想在视图中选择“旋转”按钮,当按下并按住时,只需触摸任意对象即可自定义旋转它。

或者,如果有人能引导我选择更好的选择吗?

2 个答案:

答案 0 :(得分:0)

应该相当简单。轻触旋转按钮将切换旋转,按下另一个对象将执行旋转。使用CGAffineTransformMakeRotation进行旋转。

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

以你选择的任何角度增加你的变量,它每次都应该旋转一点,即每增加90度就会在每次触碰物体时将物体旋转90度。

答案 1 :(得分:0)

GitHub上有一个名为KTOneFingerRotationGestureRecognizer的项目,它是一个自定义旋转手势识别器,它使用单个手指进行旋转。你触及一个物体并旋转它就好像它的中心有一个轴。它可能适合您,取决于您的形状有多小。您可能需要将视图放大到它们包含的图像(换句话说,添加一些填充。)