0

使用 a UIPanGestureRecognizer,我允许用户拖动 a UIView。我现在想要完成的是让视图在拖动过程中围绕指定点调整其旋转。

这方面的示例可以在 Tinder 应用程序中找到(当拖动肖像时,图像会轻微旋转)或在路径应用程序中(当向上或向下拖动朋友弹出窗口时,它会旋转到被抓取的一侧)。

4

3 回答 3

0

按以下方法进行旋转

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.yourView.transform = CGAffineTransformMakeRotation(CGFloat angle);
}
于 2013-09-04T10:33:54.133 回答
0

我必须承认我很少有使用 的经验UIPanGestureRecognizer,但我认为它不会影响答案。

然而,一种解决方案可能是创建一个计时器并使其UIView在拖动时运行,然后计时器操作将确保UIView尽可能频繁地正确更新旋转。

另一种解决方案可能是子类UIView化并覆盖拖动功能(我不知道它叫什么),如果给定任何枢轴点,只需让它自行调整其旋转。

于 2013-09-03T19:53:20.537 回答
0

使用CATransform3D

添加

#define DEGREES_TO_RADIANS(d) (d * M_PI / 180)

在 .pch 文件中

CATransform3D myTransform = CATransform3DIdentity;
myTransform.m34 = 1.0 / -500;
myTransform = CATransform3DRotate(myTransform, DEGREES_TO_RADIANS(90), 0.0f, 0.0f, 1.0f);
myView.layer.transform = myTransform;

你可以在这里继续改变角度 DEGREES_TO_RADIANS(90) 希望这会对你有所帮助

于 2013-09-04T10:47:25.710 回答