adi*_*dit 23 iphone objective-c ipad ios
我有一个UIView我添加了一个UITapGestureRecognizer.在该视图中我还有一个子视图,其中基本上是某种类型的UITableView.问题是,为什么不UITableView识别连续点击,而是一直进入点击手势识别器的处理程序.这是为什么,我该如何解决这个问题?如果我将点击数设置为2,那么它可以正常工作.关于如何解决这个问题的任何想法?基本上它不会打电话给didSelectRowAtIndexPath.
das*_*ght 55
一套cancelsTouchesInView你的识别器NO.否则,它会"消耗"触摸本身,并且不会将其传递给表格视图.这就是选择事件永远不会发生的原因.
NJo*_*nes 26
如果你想两者你UITableView 和你UITapGestureRecognizer接收触摸事件,然后是该cancelsTouchesInView = NO会工作.如果您希望轻敲手势识别器不接收针对表格视图的触摸事件,则稍微容易但非常容易.
基本上,当您创建手势识别器时,您将self设置为其委托.然后实现gestureRecognizer:shouldReceiveTouch:委托方法.基本实现可能如下所示.
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
UITableView *tableView = self.tableView;
CGPoint touchPoint = [touch locationInView:tableView];
return ![tableView hitTest:touchPoint withEvent:nil];
}
Run Code Online (Sandbox Code Playgroud)
基本上这种方法(如实现的那样)询问tableView该触摸的位置是否属于tableView管辖范围内,如果确实如此,则会阻止手势识别器接收触摸......允许tableView接收触摸.
| 归档时间: |
|
| 查看次数: |
16162 次 |
| 最近记录: |