UITableview 不会立即响应单元格选择

Posted

技术标签:

【中文标题】UITableview 不会立即响应单元格选择【英文标题】:UITableview does not immediately respond to cell selection 【发布时间】:2015-10-21 08:24:08 【问题描述】:

我有一个tableView,其中每个单元格都会触发一个模式视图(它是一个旅行计划器,该表用于选择起点和终点)。

选择地址后,模式被关闭,用户返回到表格视图。但是,如果我立即选择一个无法识别事件的单元格,我需要等待几秒钟。

我检查了 shouldHighlightCellAtIndexPath 或 didSelectCellAtIndexPath 都没有被调用。

在这里检查其他问题后,我还尝试将 delaysContentTouches 设置为 false(对于 tableview 和嵌入式滚动视图,请参阅UIButton not showing highlight on tap in ios7)

有谁知道我怎样才能让 tableview 立即响应选择?延迟时间足以惹恼用户

【问题讨论】:

您是否使用 animated = true 关闭此模态视图? 还有下一个问题 - viewWillAppear 中是否有任何复杂的代码?也许您的 UI 只是变得没有响应,因为它的某处某处被锁定或其他什么的手。 您的第一条评论是这里的关键问题。当模态被解雇时,表格没有反应。我认为这不是我可以改变的,所以我删除了动画,一切都恢复正常了 :) 如果它对你有用,那就太好了,但如果你需要动画,请寻找 UITransitionDelegate 并实现看起来像标准但提高速度的自定义动画。 感谢您的提示,但我的客户对删除动画感到满意 【参考方案1】:

首先点击UITableViewCell,被调用的代表是didSelectRowAtIndexPath。这会立即触发 - 总是!

我的猜测是你在你的主线程上做一些网络,点击单元格,然后用这些数据显示新屏幕。这会使 UI 看起来延迟且无响应。请仔细检查并确保所有不需要主线程的非 UI 内容都进入并行线程。

【讨论】:

以上是关于UITableview 不会立即响应单元格选择的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 在重新加载数据后不会立即显示单元格

UITextField 成为第一响应者后,UITableView 不会将单元格滚动到可见

iOS:UITableView 选择性触摸

UITableView 在进入编辑模式时取消选择单元格

UITableView 单元格在调整大小后不响应输入

奇怪的行为 - 行不会重新选择,直到三个水龙头