在 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】:好的,所以如果您使用默认的UITableViewCell
s 并为textLabel
和detailTextLabel
设置自定义字体,请确保为表格视图设置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 中删除表格单元格会导致崩溃?