停止的UITableView 8
问题描述:
我有一个的tableview该自动滚动仅在iOS 8的当我打开使用[self.navigationController pushViewController:newViewController animated:YES];
停止的UITableView 8
详细的问题的新视图:
现在我将详细介绍如何解决问题,特别是在iOS 8中。使用任何具有大约50个条目的tableview,向下滚动以使第10个条目位于tableview顶部。然后选择tableview上的任何项目。使用下面的方法在tableview中的行选择上推视图控制器。现在
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
// Open the New View
NewViewController *newVC = [[NewViewController alloc] init];
[self.navigationController pushViewController:newVC animated:YES];
}
你会发现,在回来从NewViewController
到以前的ViewController的实现代码如下autoscrolls一段距离。 tableview不停留在滚动的位置,它总是自动改变其位置。
答
我有同样的问题。我正在使用新的iOS 8功能动态单元格高度。我设置:
self.tableView.estimatedRowHeight = 50.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;
的问题是,一些细胞远高于50的解决方案是提供委托方法estimatedHeightForRowAtIndexPath
和返回更接近实际单元格高度值。例如:
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 1) {
return 300.0;
}
return 50;
}
另一种解决方案是计算使用systemLayoutSizeFittingSize
细胞唤起注意内部cellForRowAtIndexPath
并缓存该值。 estimatedHeightForRowAtIndexPath
内部提供缓存值,但如果尚未缓存单元格高度,则返回默认值。
答
刚删除self.tableView.estimatedRowHeight = xxx;
它适合我。这个问题发生在iOS8中,并没有出现在iOS10中
尝试了一个新项目的步骤,但没有得到同样的问题。你是否在做任何事情将会看到或看到一个新闻? – 2014-09-25 12:08:58
在viewWillAppear我设置桌面背景颜色 – Arshu 2014-09-25 12:31:25
我不能重现该问题。你能分享更多的代码吗? – 2014-09-25 13:04:58