微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS 8自动单元格高度 – didSelectRowAtIndexPath导致UItableview跳转到顶部

我目前正在将应用更新到iOS8,并且正在替换我自己的单元格高度计算.我有一堆自定义单元格的tableview.选择后的每个单元格都会将新视图显示/推送到navigationController.当使用这些单元格填充tableview,并且用户选择靠近表格底部的表格视图时,tableview会在显示新视图之前跳转到右上角.这对用户来说非常分散注意力.我正在尝试使用iOS 8中引入的自定义单元格(在viewDidLoad中):
self.tableView.estimatedRowHeight = 60.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;

这是选择单元格时的代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UIViewController *selectedViewController = [[UIStoryboard storyboardWithName:@"Trip" bundle:nil] instantiateViewControllerWithIdentifier:@"TripDetail"];
    DetailViewController *destViewController = (id)selectedViewController;
    [destViewController setData:self.dataStore];

    [self.navigationController pushViewController:selectedViewController animated:YES];
}

有谁知道为什么会这样?我怎么能让它停下来?

解决方法

这是一个众所周知的问题. tableView调用其委托来获取行的估计高度,这导致表滚动.

您可以等待在下一次更新中查看它是否已修复,或实现tableView:estimatedHeightForRowAtIndexPath :(现在作为解决方法)并返回缓存高度.由于估计将是实际高度,表格不会跳跃.

原文地址:https://www.jb51.cc/iOS/333867.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐