第一个屏幕上不可见的单元格不可点击
Posted
技术标签:
【中文标题】第一个屏幕上不可见的单元格不可点击【英文标题】:Cells not visible on first screen are not tappable 【发布时间】:2017-02-06 13:04:54 【问题描述】:我使用了 UIScroll 视图。它有一个 contentView(UIView 类型),它又有一个 questionView (UIView) 和一个 _questionTableView (UITableView)。我知道这不是正确的做法,但设计要求我这样实现。 Scroll 运行良好。
我总共有 8 个单元格,第一次打开屏幕时只有 4 个单元格可见。在点击这 4 个单元格中的任何一个时
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
被调用。
向下滚动时,其余单元格变为可见。但点击它们不会触发 didSelectRowAtIndexPath
我阅读了有关此问题的各种堆栈溢出帖子(以启用对单元格的点击),其中人们建议增加内容视图大小/滚动视图的内容大小/表格视图的高度。我尝试了所有方法,但没有成功。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCell"];
_scrollView.contentSize = CGSizeMake(_questionTableView.frame.size.width, 1000);
_contentView.frame = CGRectMake(0, 0, _questionTableView.frame.size.width * 2, 1000);
_questionTableView.frame = CGRectMake(0, 0, _qTableView.frame.size.width , 500);
self.scrollView.delegate = self;
return cell;
有没有办法让单元格可点击?
编辑:我进行了更多实验,我意识到在单元格上点击几次后,方法 - didSelectRowAtIndexPath 被调用。但这些都是随机抽头 5-6 次。无法识别模式。
【问题讨论】:
最好重构你的代码。在另一个滚动视图中使用 scrollView 不是一个好主意 设计不允许。 可能你可以用自定义表格视图单元格替换 tapToMatchView 和 questionView。 在我没有显示的滚动视图中,有 2 个表格视图彼此相邻放置。设计不允许我进行更改。有没有办法让单元格可点击? @AsthaGupta 实际上UITableview
有scrollView 属性,那么UITableView
实际上在UIScrollView
中做了什么?你能解释一下我没有得到你想要做什么。我已经回答了你的问题 2-3 次。
【参考方案1】:
尝试在您的父滚动视图中取消选择属性“延迟内容触摸”。它可能会有所帮助!
【讨论】:
以上是关于第一个屏幕上不可见的单元格不可点击的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionView:激活、滚动到并将第一响应者分配到远处的单元格