XcodeでTableViewを使って、アプリを作っていく際は、UITableViewDatasourceを使うことになります。
本記事では、UITableViewDatasourceの使い方を解説していきます。
目次
UITableViewDatasourceとは
UITableViewDatasourceは、protocolで、TableViewを使う際に必須となります。
何をするものかというと、TableViewに表示するデータを扱うものです。
例えば、
- テーブルに何個データを表示するか
- 各セルにどんなデータを表示するか
などを決めるものです。

TableViewでは必須の機能ですね。
UITableViewDatasourceはどんなメソッドがある??
具体的にUITableViewDataSourceにはどんなメソッドがあるかみてみましょう。


numberoOfRowsInSectionメソッドから、moveRowAtメソッドまで全部で、11個使えるメソッドがあります。
2つの必須のメソッド
上でUITableViewDatasourceには11個の様々なメソッドがあることが分かりました。
この11個のうち、2つのメソッドは必ず使わなければいけません。Xcodeの決まりで、使っていないとエラーが出ます。
以下の2つのメソッドです。
- numberOfRowsInSectionメソッド(セルの行数を決めるメソッド)
- cellForRowAtメソッド(セルにどんなデータを表示するか決めるメソッド)
UITableViewDatasourceを使ってみる
実際にUITableViewDataSourceを使ってみましょう。
TableViewをViewController.swiftファイルに繋いでいることは前提で進めます。
もしそこまで不安であれば、UITableViewを1から作るチュートリアルを参考にしてみてください。
では始めます。

まず赤矢印のように、UITableViewDataSourceをつけます。
エラーが出ます。上で紹介した2つの必須のメソッドを書いていないからです。
- numberOfRowsInSectionメソッド(セルの行数を決めるメソッド)
- cellForRowAtメソッド(セルにどんなデータを表示するか決めるメソッド)
これを追加します。エラーが消えます。

numberOfRowsInSectionメソッドで、テーブルに表示するセルの数を10個に指定しています。
cellForRowAtメソッドで、セル(let cell)を作って、return cellでセルの表示を行っています。セルに何を表示するかなど細かい設定はこのメソッドに書いていきます。
■ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import UIKit class ViewController: UIViewController,UITableViewDataSource { @IBOutlet weak var testTable: UITableView! override func viewDidLoad() { super.viewDidLoad() } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { //セルを10個表示する return 10 } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "test", for: indexPath) //ここでcellにどんなデータを表示するか決める return cell } } |
セルにデータを載せて実際にアプリを作ってみたい方は、下のチュートリアルを参考にしてみてください。Xcodeでプロジェクトの作成から解説しています。
おわりに
UITableViewDataSourceについては以上です。
参考記事:
https://developer.apple.com/documentation/uikit/uitableviewdatasource