【Swift】UIRefleshController(インジケーター)の実装方法
完成図
今回は、インジケーターを実行すると、
"更新したよ"
というテキストが代入されたセルが追加される。
手順
- UIRefreshControlのインスタンスを生成
- 色、テキスト、などのプロパティを設定
- 実行したい処理や関数を追加
- tableViewにUIRefleshControlを設定する
- クルクル(インジケーター)を終了させる
ソースコード
import UIKit class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { @IBOutlet weak var tableView: UITableView! //セルに表示するテキスト var array = [String]() //UIRefleshControlの宣言 let reflesh = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() //クルクル(インジケーター)の色 reflesh.tintColor = UIColor.blue //クルクルの下に表示されるテキスト reflesh.attributedTitle = NSAttributedString(string: "更新しまぁーす") //実行したい処理を追加 reflesh.addTarget(self, action: #selector(addText), for: .valueChanged) //tableViewにreflehsを追加 tableView.refreshControl = reflesh } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return array.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) cell.textLabel?.text = array[indexPath.row] return cell } @objc func addText() { array.append("更新したよ") //クルクルを終了させる self.reflesh.endRefreshing() //セルをリロード tableView.reloadData() } }