我试图更新我的iOS 8应用程序和一个奇怪的问题,我无法弄清楚每当我按下一个表视图单元格(在分组表视图上)并推送另一个视图控制器在导航控制器上,表视图的所有单元格都会跳转。这有点像他们都降低了一点点。
因此,当弹出导航堆栈并返回到原始表格视图屏幕时,单元格会再次跳转,这次它们会增加高度并返回原来的状态。
我尝试过使用UITableViewController,进行自己的表视图管理,不使用明确的部分高度,删除所有自定义标题视图和框架,基本上是我能想到的任何内容。
它发生在所有iOS 8仿真器和运行iOS 8 iPhone和iPad的实际设备上。
任何建议都会有所帮助。
修改:删除了视频
答案 0 :(得分:10)
好吧,如果您使用默认UITableViewCell
并为textLabel
和detailTextLabel
设置自定义字体,请务必设置rowHeight
表视图或实现其中一个UITableViewDelegate
方法,例如tableView:estimatedHeightForRowAtIndexPath:
相同的代码在早期版本的iOS上运行良好,但出于某种原因需要在iOS 8上修复。
答案 1 :(得分:8)
我有完全相同的问题! 看起来iOS 8 SDK在选择一行后使用了estimatedRowHeight,然后导致整个tableview的高度错误,导致tableview本身跳转。
不设置estimatedRowHeight属性或实现委托方法将修复跳转错误。
我还没有找到一个干净的解决方案来修复它。
答案 2 :(得分:0)
我单独使用故事板解决了跳跃问题:
答案 3 :(得分:-1)
您可以使用以下代码实现自我调整:
implement together:
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = CGFloatValue (initial estimated height);
在故事板中,在您的单元格上添加正确的约束。
注意:跳转问题有时仍会显示。
此跳转问题的确切解决方案是实现委托方法:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return CGFloat;
}