iOS 8 UITableView 单元格在选中时会跳转
Posted
技术标签:
【中文标题】iOS 8 UITableView 单元格在选中时会跳转【英文标题】:iOS 8 UITableView cells jump when selected 【发布时间】:2015-02-01 03:17:57 【问题描述】:我有一个非常标准的 UITableView,它使用自动调整单元格大小
// Set the height of the table view cells
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44.0;
当我将 segue 推送到新的视图控制器时,表格视图会跳转到不同的位置。我已经使用 tableView 方法尝试了estimatedRowHeight、rowHeight,但什么都没有……
我已经阅读了这些内容,但仍然没有任何效果。有人吗?
•Table View Cells jump when selected on ios 8
•iOS 8 Auto cell height - didSelectRowAtIndexPath causes UItableview to jump to top
•IOS 8 UITableView self-sizing cells jump/shift visually when a new view controller is pushed
【问题讨论】:
你实现了方法 didSelectRowAtIndexPath: 吗? 是的,我已经实现了。 你能分享一下吗?似乎问题就在那里(因为问题是当你选择一个单元格时) 我为这个答案发布的代码应该会有所帮助。当 push segue 发生时,我再也没有看到桌子跳了(要么是因为 bug 已修复,要么我的估计高度非常准确):***.com/a/28267459/4151918 这似乎与此重复:***.com/questions/27996438/… 查看我的答案 【参考方案1】:这是一个已知问题。
相信你会发现estimatedRowHeight
与实际高度相差越大,push segue发生时桌子就会跳得越厉害。解决方法是使用更好的估计(或实现tableView:estimatedHeightForRowAtIndexPath:
并返回确切的高度)。
【讨论】:
你能分享一个这样的例子吗? 您可以使用在自动调整单元格出现之前在tableView:heightForRowAtIndexPath:
中使用的相同代码。但我建议首先尝试使用更准确的估计行高度,特别是如果您的实际行不是 44 点高。您可能会发现,更好的估计是解决该问题的足够好的解决方法。以上是关于iOS 8 UITableView 单元格在选中时会跳转的主要内容,如果未能解决你的问题,请参考以下文章
UITableView - BeginUpdates/EndUpdates 动画设置
ios 7 uitableview 所选单元格在 beginupdates 后失去边框
iOS - 使 UITableView 与自定义单元格在按钮单击时可编辑