使用 a UIPanGestureRecognizer
,我允许用户拖动 a UIView
。我现在想要完成的是让视图在拖动过程中围绕指定点调整其旋转。
这方面的示例可以在 Tinder 应用程序中找到(当拖动肖像时,图像会轻微旋转)或在路径应用程序中(当向上或向下拖动朋友弹出窗口时,它会旋转到被抓取的一侧)。
使用 a UIPanGestureRecognizer
,我允许用户拖动 a UIView
。我现在想要完成的是让视图在拖动过程中围绕指定点调整其旋转。
这方面的示例可以在 Tinder 应用程序中找到(当拖动肖像时,图像会轻微旋转)或在路径应用程序中(当向上或向下拖动朋友弹出窗口时,它会旋转到被抓取的一侧)。
按以下方法进行旋转
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
self.yourView.transform = CGAffineTransformMakeRotation(CGFloat angle);
}
我必须承认我很少有使用 的经验UIPanGestureRecognizer
,但我认为它不会影响答案。
然而,一种解决方案可能是创建一个计时器并使其UIView
在拖动时运行,然后计时器操作将确保UIView
尽可能频繁地正确更新旋转。
另一种解决方案可能是子类UIView
化并覆盖拖动功能(我不知道它叫什么),如果给定任何枢轴点,只需让它自行调整其旋转。
使用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) 希望这会对你有所帮助