我有一个UITableView,它将UIViews加载到它的单元格中。这些UIViews使用-touchesBegan:withEvent:etc方法,这些方法都可以正常工作。让我实现代码来在表格中移动这些子视图。这一切都有效,直到我垂直移动我的手指。开始滚动表格,然后UIViews停止接收任何触摸事件。如果有人知道怎么解决这个问题,我会非常高兴!非常感谢。
答案 0 :(得分:3)
-(void)ViewDidLoad
{
UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
tapped.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:tapped];
[tapped release];
}
-(void)tapped
{
NSLog(@"TAPPED");
}
答案 1 :(得分:1)
UITableView的父UIScrollView可能会接管您的触摸事件。
将forward事件发送到自定义子视图。
-(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];
}
答案 2 :(得分:0)
旧主题,但我正在努力解决同样的问题(UITableView作为UITableView的子视图)。只需使用scrollEnabled = NO禁用“父”UITableView的滚动。这将停止垂直滚动。