今回は、よく使いそうな機能の実装方法を載せていこうと思います。
UIRefreshControlとは
よくある、"引っ張って更新"を実装できる要素です。
スクロールが可能な要素(スクロールビュー)に設定することができます。
実装方法
今回はTableViewにRefreshControlを実装してみたいと思います。
TableViewController.swift
class TableViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
fileprivate let refreshCtl = UIRefreshControl()
override func viewDidLoad() {
tableView.refreshControl = refreshCtl
refreshCtl.addTarget(self, action: #selector(ViewController.refresh(sender:)), for: .valueChanged)
}
func refresh(sender: UIRefreshControl) {
// ここが引っ張られるたびに呼び出される
// 通信終了後、endRefreshingを実行することでロードインジケーター(くるくる)が終了
UIRefreshControl.endRefreshing()
}
}
では解説です。
まずStoryBoardでUITableViewを配置し、TableViewControllerを作成します。
次に、TableViewをアウトレット接続し、UIRefreshControlのインスタンスも作成します。
その作成したインスタンスをViewDidLoad()でTableViewのrefreshControlプロパティに設定します。
次は引っ張られた時にどの処理を実行させるかを、
UIRefreshControlのインスタンスにaddTargetで指定しています。
これで引っ張って更新の機能は実装完了です。
注意点としては、コメントにも書いていますがendRefreshing()を忘れずに。ぐらいかと思います。
さいごに
案外簡単に実装が可能で、よく使うUIだと思いますので、
何かの機会に実装してみてはいかがでしょうか!
ではでは。