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

标签 ios objective-c uitableview ios8

我目前正在将一个应用程序更新到 iOS8,并且正在替换我自己的单元格高度计算。我有一个带有一堆自定义单元格的表格 View 。每个单元格在被选中时都会将一个新 View 呈现/推送到导航 Controller 上。当表格 View 填充了这些单元格,并且用户选择了表格底部附近的一个单元格时,表格 View 会在新 View 出现之前跳到右上角。这非常分散用户的注意力。我在这里尝试使用 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 正在调用它的委托(delegate)来获取行的估计高度,这会导致表格滚动。

您可以等着看它是否会在下一次更新中修复,或者实现 tableView:estimatedHeightForRowAtIndexPath:(作为目前的解决方法)并返回缓存的高度。由于估计值将是实际高度,因此表格不会跳动。

关于iOS 8 自动单元格高度 - didSelectRowAtIndexPath 导致 UItableview 跳到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26598453/

相关文章:

iphone - 如何在单击 iPhone 中的 UIButton 时打开相机?

ios - 如何隐藏大标题 iOS 11 搜索 Controller

iphone - 尝试编辑单元格时 UITableView 崩溃

ios - 如何防止 WKWebView 重复请求访问位置的权限?

IOS XCode 放置视频文件的正确位置

c# - 降低单点触控中 native <-> 托管交互的成本

ios - TableView :numberOfRowsInSection:]: unrecognized selector sent to instance

ios - 同时集成google Ima SDK和IMA DAI SDK

objective-c - 离线数据存储/同步选项、Core Data、TouchDB 或其他?

objective-c - NSMassFormatter 无法将克转换为磅 (NSUnitMass) 或显示值