在reloadData之后,TableView yOffset已更改

时间:2016-02-29 06:40:31

标签: ios tableview

当我在tableHeaderViewreloadData之后自定义viewWillAppear时,将更改tableView contentOffset.y

请帮帮我..

我在调用reloadData时记录了tableView contentOffset, 这是日志:

2016-03-01 10:51:04:362 ~~[1474:387143] will-TableViewContentOffset: {0, -18} 2016-03-01 10:51:04:363 ~~[1474:387143] did-TableViewContentOffset: {0, -62}

这是我调用的方式:

    NHDLog(@"will-TableViewContentOffset: %@", NSStringFromCGPoint(self.tableView.

    [self _reloadTableView];

    NHDLog(@"did-TableViewContentOffset: %@", NSStringFromCGPoint(self.tableView.contentOffset));

viewDidLoad我设置了:

self.edgesForExtendedLayout = UIRectEdgeNone;
self.automaticallyAdjustsScrollViewInsets = NO;

4 个答案:

答案 0 :(得分:3)

这为我解决了同样的问题(thanks to rshinich):

self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;

答案 1 :(得分:0)

尝试在viewDidLoad中添加以下代码:

在斯威夫特:

self.automaticallyAdjustsScrollViewInsets = false

在Objective-C

self.automaticallyAdjustsScrollViewInsets = NO;

答案 2 :(得分:0)

我终于通过删除以下代码解决了这个问题:

{{1}}

答案 3 :(得分:0)

unsuitable estimatedRowHeight将导致错误y。我更改了值以解决问题,我想您也应该尝试。