一个tableView上的某个cell(后面用cellA代替)上有一个scrollView,该scrollView上添加了几个tableView。要求在cellA所在的section的sectionHeader滑动到顶部的时候cellA上的scrollView上的几个tableView可以滑动,否则不能滑动。
1.需要底部的tableView能够同时响应多个手势(这样在滑动子tableView时候,底部的tableView也能滑动)
2.在最开始的时候底部tableView能够滑动,scrollView上的tableView不能滑动。
3.当cellA所在的section的sectionHeader滑动到顶部的时候,scrollView上的几个tableView可以滑动。
4.当scrollView上的tableView在Y方向的偏移量为0的时候,scrollView上tableView不能滑动,底部的tableView能滑动。
1.监听底部tableView的偏移量,从而设置该tableView以及scrollView上几个tableView是否能滑动
2.设置scrollView上几个tableView是否能滑动
3.监听scrollView上几个tableView的偏移量,从而通知底部tableView是否可滑动
4.接收通知,从而设置底部tableView以及scrollView上几个tableView是否能滑动
https://github.com/yangguanghei/table-scroll
这里我们为tableview添加长按手势
UILongPressGestureRecognizer *longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)]
longPressGr.minimumPressDuration = 0.5f
longPressGr.numberOfTouchesRequired = 1
[_tableView addGestureRecognizer:longPressGr]
[longPressGr release]
这时我们会发现每次按住tableView并且松开的时候, longPressAction: 这个方法会执行2次
- (void)longPressAction:(UILongPressGestureRecognizer *)longPress
{
if (longPress.state == UIGestureRecognizerStateBegan) {
CGPoint point = [longPress locationInView:_tableView]
NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point]// 可以获取我们在哪个cell上长按
if (indexPath != nil) {
NSLog(@"%ld", indexPath.row)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)