由于要实现表格横向滚动时第一列保持不动,所以这里用了两个TableView(第一列是一个单独的TableView,右边整个是一个TableView)。然后我通过在tableView: didSelectRowAtIndexPath: 方法里触发另一个表格的selectRowAtIndexPath 事件来实现选中行同步,但是这样的话同步表格的选中行的高亮效果会有延迟,动图中第四次点击可以看得比较明显。
小弟新学iOS不久,求教各位大神有什么好的解决方案!
小弟新学iOS不久,求教各位大神有什么好的解决方案!
放到scrollview里了
放到scrollview里了那你干嘛要用两个tableView?用同一个不就行了?
自定义个cell,主要分两个部分,左边是一个uilable,右边是一个scrollView不就行了?
试了下这个方案,这样的话每个cell里的横向滚动是独立的,怎么样实现滚动同步呢?而且在cell的右侧(scrollview)点击时,不会触发选中事件...
试了下这个方案,这样的话每个cell里的横向滚动是独立的,怎么样实现滚动同步呢?而且在cell的右侧(scrollview)点击时,不会触发选中事件...那你两个tableView上下同时滚动是如何实现的
在scrollViewDidScroll 做的处理,但是对于cell 里的scrollview 就不懂该怎么处理了,包括怎么获取当前滚动的scrollview的cell 和让其他cell里的scrollview发生同样的位移。
在scrollViewDidScroll 做的处理,但是对于cell 里的scrollview 就不懂该怎么处理了,包括怎么获取当前滚动的scrollview的cell 和让其他cell里的scrollview发生同样的位移。感觉你这样确实有点难搞啊。点击的时候,同一行可以认为是一个view,然后滚动的时候右侧又是一个整体的view,这两个view冲突了呀暂时想不出更好的办法,不好意思
- (void)longGsAct: (UILongPressGestureRecognizer *)sender {
NSLog(@"cell长按手势");
// 转换坐标
CGRect newRect = [sender.view convertRect:sender.view.bounds toView:nil];
// view距离window左右两边各5,高度30
UIView *v = [[UIView alloc]initWithFrame:CGRectMake(5, newRect.origin.y, [[UIScreen mainScreen] bounds].size.width - 10, 30)];
v.backgroundColor = [UIColor colorWithRed:242.0/255 green:242.0/255 blue:242.0/255 alpha:0.5];
UIApplication *ap = [UIApplication sharedApplication];
v.tag = 25692569;
// 添加view
if (sender.state == UIGestureRecognizerStateBegan) {
[ap.keyWindow addSubview:v];
}
// 移除view
if (sender.state == UIGestureRecognizerStateEnded) {
[[ap.keyWindow viewWithTag:25692569] removeFromSuperview];
}
}