我有一个UITableView,在其单元格中加载UIView。这些UIView使用-touchesBegan:withEvent:等方法,所有这些方法都可以正常工作,并让我实现代码来移动表中的这些子视图。这一切都很好,直到我垂直移动手指并开始滚动表格,然后UIView停止接收任何触摸事件。如果有人知道如何解决这个问题,我会非常高兴!非常感谢。
我有一个UITableView,在其单元格中加载UIView。这些UIView使用-touchesBegan:withEvent:等方法,所有这些方法都可以正常工作,并让我实现代码来移动表中的这些子视图。这一切都很好,直到我垂直移动手指并开始滚动表格,然后UIView停止接收任何触摸事件。如果有人知道如何解决这个问题,我会非常高兴!非常感谢。
-(void)ViewDidLoad
{
UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
tapped.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:tapped];
[tapped release];
}
-(void)tapped
{
NSLog(@"TAPPED");
}
你的UITableView的父级UIScrollView可能会接管响应你的触摸事件。
只需将事件转发到你的自定义子视图即可。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if ([touches count] == 1)
{
//Your code here than should return if it reacts to touch
}
//forwarding action:
[self.nextResponder touchesBegan:touches withEvent:event];
}
虽然是老话题,但我也曾遇到同样的问题(将UITableView作为另一个UITableView的子视图)。只需将“父”UITableView的scrollEnabled属性设置为NO即可禁用其滚动。这将停止垂直滚动。