Swift 實現下拉刷新功能 🔥
在 iOS 開發中,下拉刷新功能是一個非常常見的功能,它可以讓使用者在拉動畫面時,觸發一個動作,例如重新載入資料或是重新整理畫面。在 Swift 中,我們可以使用 UIRefreshControl 來實現這個功能,下面就來看看如何使用 UIRefreshControl 實現下拉刷新功能。
前置準備
首先,我們需要先在 Storyboard 中,將一個 UITableView 拉出來,並且將它的 delegate 和 dataSource 都拉到 ViewController 中,如下圖所示:
實現下拉刷新功能
接著,我們就可以開始實現下拉刷新功能了,首先,我們需要在 ViewController 中宣告一個 UIRefreshControl 的變數,如下:
class ViewController: UIViewController {
var refreshControl = UIRefreshControl()
...
}
接著,我們就可以在 viewDidLoad() 中,將 refreshControl 加入到 tableView 中,並且設定它的 title 和 action,如下:
override func viewDidLoad() {
super.viewDidLoad()
refreshControl.addTarget(self, action: #selector(refreshData), for: .valueChanged)
refreshControl.attributedTitle = NSAttributedString(string: "更新中...")
tableView.addSubview(refreshControl)
}
在上面的程式碼中,我們將 refreshControl 加入到 tableView 中,並且設定它的 title 為「更新中…」,並且設定它的 action 為 refreshData(),這個函式就是當使用者拉動 tableView 時,會被觸發的函式,我們可以在這個函式中,實現我們想要的動作,例如重新載入資料或是重新整理畫面,如下:
@objc func refreshData() {
// 重新載入資料或是重新整理畫面
refreshControl.endRefreshing()
}
在上面的程式碼中,我們可以在 refreshData() 中,實現我們想要的動作,例如重新載入資料或是重新整理畫面,最後,我們需要呼叫 refreshControl.endRefreshing() 來結束下拉刷新的動作,以示使用者已經完成了下拉刷新的動作。
總結
在本文中,我們介紹了如何使用 Swift 實現下拉刷新功能,我們可以使用 UIRefreshControl 來實現這個功能,並且在 refreshData() 中,實現我們想要的動作,例如重新載入資料或是重新整理畫面,最後,我們需要呼叫 refreshControl.endRefreshing() 來結束下拉刷新的動作,以示使用者已經完成了下拉刷新的動作。
在實際開發中,我們可以根據自己的需求,對 UIRefreshControl 進行更多的設定,例如設定它的 tintColor、attributedTitle 等等,以符合我們的需求。
推薦閱讀文章
推薦閱讀文章
<a href="https://www.raywenderlich.com/5109-pull-to-refresh-tutorial-for-ios-how-to-add-the-pull-to-refresh-feature">Pull to Refresh Tutorial for iOS: How to Add the Pull to Refresh Feature</a><br>
<a href="https://www.appcoda.com/pull-to-refresh-swift/">How to Implement Pull-to-Refresh in Swift</a><br>
<a href="https://www.hackingwithswift.com/example-code/uikit/how-to-add-pull-to-refresh-to-a-table-view">How to add pull-to-refresh to a table view</a><br>
<a href="https://www.appcoda.com/swift-programming-tutorial-add-pull-to-refresh-functionality/">Swift Programming Tutorial: Add Pull-to-Refresh Functionality</a><br>
<a href="https://www.raywenderlich.com/5677-uirefreshcontrol-tutorial-for-ios-how-to-add-pull-to-refresh-to-your-app">UIRefreshControl Tutorial for iOS: How to Add Pull to Refresh to Your App</a