Swift – 如何實現無限滾動 UITableView 🌀
在 iOS 開發中,UITableView 是一個非常常見的 UI 元件,它可以讓開發者快速地建立一個列表,但是有時候我們會需要實現無限滾動的 UITableView,也就是當使用者滾動到最底部時,會自動載入更多的資料,這樣的功能在一些新聞 App 中很常見,那麼如何在 Swift 中實現無限滾動的 UITableView 呢?
實現步驟
- 在
UITableView
的delegate
中實現scrollViewDidScroll
方法,並在裡面檢查contentOffset
是否到達最底部:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
let contentHeight = scrollView.contentSize.height
if offsetY > contentHeight - scrollView.frame.height {
// 已經滾動到最底部
}
}
- 在檢查到最底部時,請求更多的資料:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
let contentHeight = scrollView.contentSize.height
if offsetY > contentHeight - scrollView.frame.height {
// 已經滾動到最底部
// 請求更多的資料
}
}
- 將新請求的資料加入到
UITableView
的dataSource
中:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
let contentHeight = scrollView.contentSize.height
if offsetY > contentHeight - scrollView.frame.height {
// 已經滾動到最底部
// 請求更多的資料
// 將新請求的資料加入到 UITableView 的 dataSource 中
tableView.dataSource.append(newData)
}
}
- 將新資料重新顯示在
UITableView
上:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y
let contentHeight = scrollView.contentSize.height
if offsetY > contentHeight - scrollView.frame.height {
// 已經滾動到最底部
// 請求更多的資料
// 將新請求的資料加入到 UITableView 的 dataSource 中
tableView.dataSource.append(newData)
// 將新資料重新顯示在 UITableView 上
tableView.reloadData()
}
}
總結
透過以上的步驟,我們就可以在 Swift 中實現無限滾動的 UITableView 了,如果你想要更詳細的程式碼,可以參考我們的 Github 範例。
推薦閱讀文章
UITableView 無限滾動教學
UITableView 無限滾動實作
Swift 如何實現無限滾動 UITableView
如何將無限滾動新增至 UITableView
無限滾動 UITableView iOS 教學</a