簡體   English   中英

如何重置 UITableView 的滾動位置?

[英]How to reset the scroll position of a UITableView?

我想完全重置 UITableView 的滾動位置,以便每次打開它時,它都會顯示最頂部的項目。 換句話說,我想在每次打開表格視圖時將它滾動到頂部。

我嘗試使用以下代碼段,但看起來我誤解了文檔:

- (void)viewWillAppear:(BOOL)animated {
    [tableView scrollToNearestSelectedRowAtScrollPosition:UITableViewScrollPositionTop animated:NO];
}

這是錯誤的方法嗎?

August 得到了 UITableView 特有的方法。 另一種方法是:

[tableView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:NO];

該方法定義在 UIScrollView 中,UITableView 的父類。 上面的例子告訴它滾動到 0,0 處的 1x1 框 - 換句話說,左上角。

您使用的方法滾動到(正如方法名稱所暗示的)最近的選定行。 在許多情況下,這不會是第一行。 相反,您想使用

scrollToRowAtIndexPath:atScrollPosition:animated:

或者

selectRowAtIndexPath:animated:scrollPosition:

您使用要滾動到的行的索引路徑的位置。 第二種方法實際上選擇一行,第一種方法只是滾動到它。

我最終做的是這樣的:

斯威夫特 4

self.tableView.contentOffset = CGPoint.zero
DispatchQueue.main.async {
    self.tableView.reloadData()
}

迅速:

self.tableView.scrollRectToVisible(CGRect.zero, animated: false)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM