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

时间:2014-09-19 15:50:26

标签: ios uitableview ios8

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

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

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

它发生在所有iOS 8仿真器和运行iOS 8 iPhone和iPad的实际设备上。

任何建议都会有所帮助。

修改:删除了视频

4 个答案:

答案 0 :(得分:10)

好吧,如果您使用默认UITableViewCell并为textLabeldetailTextLabel设置自定义字体,请务必设置rowHeight表视图或实现其中一个UITableViewDelegate方法,例如tableView:estimatedHeightForRowAtIndexPath:

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

答案 1 :(得分:8)

我有完全相同的问题! 看起来iOS 8 SDK在选择一行后使用了estimatedRowHeight,然后导致整个tableview的高度错误,导致tableview本身跳转。

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

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

答案 2 :(得分:0)

我单独使用故事板解决了跳跃问题:

  1. TableView行高:自动。
  2. TableView Estimate :my_value(例如75)
  3. TableView单元格行高:my_value

答案 3 :(得分:-1)

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

implement together:
tableView.rowHeight = UITableViewAutomaticDimension; 
tableView.estimatedRowHeight = CGFloatValue (initial estimated height);
在故事板中

,在您的单元格上添加正确的约束。

注意:跳转问题有时仍会显示。

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

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

return CGFloat;

}