Iphone UISweepGestureRecognitor位置

Iphone UISweepGestureRecognitor位置,iphone,location,uigesturerecognizer,gesture,swipe,Iphone,Location,Uigesturerecognizer,Gesture,Swipe,我需要触发一个不同的事件,这取决于用户是滑动屏幕的顶部、中间还是底部。我正试图找出最好/最简单的方法来实现这一点,因为我非常确定无法从UISweepGestureRecognitor获取位置 CGPoint pt = [recognizer locationOfTouch:0 inView:view]; 第一个选项是使用“触摸”方法创建我自己的刷卡识别器。这似乎非常困难(例如,尝试区分滑动和拖动) 第二种可能是通过一种“touch”方法(例如touchsbegind)获取位置,并以某种方式将其

我需要触发一个不同的事件,这取决于用户是滑动屏幕的顶部、中间还是底部。我正试图找出最好/最简单的方法来实现这一点,因为我非常确定无法从UISweepGestureRecognitor获取位置

CGPoint pt = [recognizer locationOfTouch:0 inView:view];
第一个选项是使用“触摸”方法创建我自己的刷卡识别器。这似乎非常困难(例如,尝试区分滑动和拖动)

第二种可能是通过一种“touch”方法(例如touchsbegind)获取位置,并以某种方式将其与刷卡相关联。也许在touchsbeging中设置一个计时器,然后如果滑动识别器在半秒钟内启动,我就知道滑动已连接到该触摸

我能想到的第三种可能性是在视图顶部放置3个透明子视图,并为每个视图添加不同的滑动识别器。对我来说,这似乎是最好的方式,除了透明视图不能识别触摸/滑动事件。那么我该如何解决这个问题呢


有什么建议吗?谢谢。

您可能可以使用UISweepGestureRecognitor的locationOfTouch方法

CGPoint pt = [recognizer locationOfTouch:0 inView:view];

我相信这将为您提供启动手势的触摸的原始x,y坐标。

我在我的一个项目中使用了您的第三种技术。透明视图不能识别滑动手势。这是我用过的代码,也许你忘了什么

-(id) initWithPageList:(id<PageListDisplayerDelegate>) iDelegate {
    self = [super init];
    if (self) {
        // Custom initialization
        self.delegate = iDelegate;
        UISwipeGestureRecognizer* swipeRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(viewSwiped:)];
        swipeRecognizer.direction = UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;
        [self.view addGestureRecognizer:swipeRecognizer];
        [swipeRecognizer release];
    }
    return self;

嗯。好吧,我是个白痴。当我应该查看UIGestureRecognizer时,我正在查看UIWipeGestureRecognizer类引用。谢谢。作为起点,您只需
让swipeStartPoint=sender.location(在:视图中)