Objective c 截取UITableView滚动触摸

Objective c 截取UITableView滚动触摸,objective-c,uitableview,ipad,uiscrollview,Objective C,Uitableview,Ipad,Uiscrollview,是否可以在我自己的代码中控制UITableView何时滚动 我试图获得垂直滑动滚动和水平滑动通过我的代码的行为,其中有很多例子 但是 我希望对角滑动不起任何作用,即UITableView甚至不应该开始滚动 我试着在这里抓住它 -voidScrollView将开始刷新:UIScrollView*scrollView 但是scrollView.contentOffset.x始终为0,因此我无法检测到水平移动 我还尝试将UITableView子类化并实现 -voidTouchsMoved:NSSet*

是否可以在我自己的代码中控制UITableView何时滚动

我试图获得垂直滑动滚动和水平滑动通过我的代码的行为,其中有很多例子

但是

我希望对角滑动不起任何作用,即UITableView甚至不应该开始滚动

我试着在这里抓住它

-voidScrollView将开始刷新:UIScrollView*scrollView

但是scrollView.contentOffset.x始终为0,因此我无法检测到水平移动

我还尝试将UITableView子类化并实现

-voidTouchsMoved:NSSet*触摸事件:UIEvent*事件

-UIView*hitTest:CGPointPointWithEvent:UIEvent*event

等等

但是UITableView和我猜它的父UIScrollView在通知触摸之前开始滚动

要重新迭代,我希望在进行对角滑动时锁定UITableView滚动,但正常情况下垂直滚动

这种行为可以在iPhone的TweetieTwitter中看到


谢谢你的帮助

如果可以使用3.2或更高版本,UIgestureRecognitor套件应该允许这样做。有一系列调用允许某些手势取消或与其他手势互操作,您应该能够创建一个自定义的对角滑动手势,该手势取消其他手势,但实际上本身不做任何事情

在3.2之前,UIScrollView手势处理基本上没有文档记录。您可以通过标准的touchesUIResponder呼叫来检测点击,但不能检测移动。我认为,一旦它检测到移动,它就会占用运行循环并捕获所有事件,绕过正常的事件链


请注意,始终调用setContentOffset。您可以创建UIScrollView的子类,当您在事件跟踪期间检测到对角线偏移时,不要将其传递给super。我不知道这是否有效,或者效果如何,但这是一个开始。

谢谢,UIGestureRecognitor处理刷卡检测的效果比我使用任何其他方法都要好得多。我的目标是iPad,所以它非常好用:-顺便说一句,你需要做识别器。cancelsTouchesInView=YES;在你的处理程序中实现我想要的效果。