在 iOS 8 上选中时,表格视图单元格会跳转

Posted

技术标签:

【中文标题】在 iOS 8 上选中时,表格视图单元格会跳转【英文标题】:Table View Cells jump when selected on iOS 8 【发布时间】:2014-09-19 15:50:25 【问题描述】:

我正在尝试为 ios 8 更新我的应用程序,但我无法弄清楚的一个奇怪问题是,每当我按下表视图单元格(在分组表视图上)并将另一个视图控制器推送到导航时控制器,表格视图的所有单元格都会跳转。有点像他们的身高都降低了一点。

因此,当弹出导航堆栈并返回原始表格视图屏幕时,单元格再次跳转,这次它们增加了高度并返回到原来的状态。

我尝试过使用 UITableViewController,进行自己的表格视图管理,不使用明确的部分高度,删除所有自定义标题视图和框架,基本上是我能想到的任何东西。

在所有 iOS 8 模拟器和运行 iOS 8 的 iPhone 和 iPad 的实际设备上都会发生这种情况。

任何建议都会有帮助。

编辑:删除视频

【问题讨论】:

肯定更新了视频。 这里也一样。让我打墙。 我无法在 Dropbox 中观看视频? 【参考方案1】:

好的,所以如果您使用默认的UITableViewCells 并为textLabeldetailTextLabel 设置自定义字体,请确保为表格视图设置rowHeight 或实现@987654325 之一@ 方法,例如tableView:estimatedHeightForRowAtIndexPath:

相同的代码在早期版本的 iOS 上运行良好,但出于某种原因需要在 iOS 8 上修复。

【讨论】:

您的实际解决方案是什么?设置例如self.tableView.estimatedRowHeight = 60.0对跳跃没有影响。 我设置的是 rowHeight 属性而不是estimatedRowHeight 属性。它们是不同的。 如何实现,哥们我能得到一些描述【参考方案2】:

我遇到了同样的问题! 好像iOS 8 SDK使用了estimatedRowHeight,在选择了一行之后,会导致整个tableview的高度不对,从而导致tableview本身的跳转。

不设置estimatedRowHeight属性或实现委托方法将修复跳转错误。

我还没有找到一个干净的解决方案来修复它。

【讨论】:

不设置estimatedRowHeight会导致为我选择时单元格重叠。不推荐。 如果您希望单元格高度是动态的,这不是一个选项。 是的,这就是我写的原因:'我还没有找到解决方案。'【参考方案3】:

我只用情节提要解决了跳跃问题:

    TableView 行高:自动。 TableView 估算值:my_value(例如 75) TableView 单元格行高:my_value

【讨论】:

【参考方案4】:
self.tableView.estimatedRowHeight=0;
self.tableView.estimatedSectionHeaderHeight=0;
self.tableView.estimatedSectionFooterHeight=0;

【讨论】:

【参考方案5】:

您可以使用以下代码实现自我调整大小:

implement together:
tableView.rowHeight = UITableViewAutomaticDimension; 
tableView.estimatedRowHeight = CGFloatValue (initial estimated height);

在您的故事板中,为您的单元格添加正确的约束。

注意:跳转问题有时仍会出现。

这个跳转问题的确切解决方案是实现委托方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 

return CGFloat;


【讨论】:

以上是关于在 iOS 8 上选中时,表格视图单元格会跳转的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 iOS 中显示为 PDF 时,具有居中文本的底部表格单元格会被截断?

iOS 6 自定义分组 UITableViewCell 大小不正确

是否在表格视图单元格上选择没有响应

从 UITableViewController 中删除表格单元格会导致崩溃?

iOS 8 Swift UICollectionView reloadData() 导致视图(图像)跳转单元格

iOS 8 中的表格视图单元格自动布局