gpt4 book ai didi

objective-c - 我可以使用 UIPinchGestureRecognizers 来区分水平和垂直捏合吗?

转载 作者:可可西里 更新时间:2023-11-01 03:07:54 24 4
gpt4 key购买 nike

我有一个 View ,用户可以通过捏合来扩大或缩小。我希望它沿两个轴工作 - 如果捏合主要是水平的,它会水平地增大/缩小对象,但如果捏合主要是垂直的,它会垂直增大/缩小对象。

我可以用一个或两个捏合识别器实现这一点吗?如果可以,怎么做?

最佳答案

您可以为此使用 UIPinchGestureRecognizer,但您必须编写代码来确定捏合是水平还是垂直。我还没有测试过这个:

typedef enum {
PinchAxisNone,
PinchAxisHorizontal,
PinchAxisVertical
} PinchAxis;

PinchAxis pinchGestureRecognizerAxis(UIPinchGestureRecognizer *r) {
UIView *view = r.view;
CGPoint touch0 = [r locationOfTouch:0 inView:view];
CGPoint touch1 = [r locationOfTouch:1 inView:view];
CGFloat tangent = fabsf((touch1.y - touch0.y) / (touch1.x - touch0.x));
return
tangent <= 0.2679491924f ? PinchAxisHorizontal // 15 degrees
: tangent >= 3.7320508076f ? PinchAxisVertical // 75 degrees
: PinchAxisNone;
}

关于objective-c - 我可以使用 UIPinchGestureRecognizers 来区分水平和垂直捏合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9064760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com