我有一个带有自定义单元格的表格 View ,其动态单元格高度取决于单元格内容。
我的问题如下,当我在 viewDidLoad 中以编程方式询问滚动到它工作的给定位置时,除了最后一行。有时该行出现但不完整,有时甚至不出现。在这两种情况下,我都必须手动滚动才能看到该行。
代码如下:
[self.tableView reloadData];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:aRow inSection:aSection];
[self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:YES ];
这是 iOS 的错误吗?任何解决方法?
最佳答案
据我所知,
view
显示在屏幕上之前的所有操作都在viewDidLoad
中初始化所有的UI对象,数据对象都可以在这个方法中分配和初始化.
所有对view
的操作数据修改,UI修改都需要在viewDidAppear
中完成。甚至可以在 viewWillAppear
中完成一些操作。
因此对于您的问题,UITableView
滚动必须在表格加载并显示在屏幕上后完成,即在 viewDidAppear
中。
另请注意,每次向用户显示 View 时都会调用 viewDidAppear
和 viewWillAppear
,因此如果您只想在第一个实例中滚动表格,您可以 header 中的标志指示实例。
关于ios - UItableview scrollToRowAtIndexPath 没有正确显示最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13028239/