Swift iOSアプリのテーブル表示|UITableViewとUICollectionView入門
生徒
「iOSアプリでたくさんのデータを一覧表示する方法はありますか?」
先生
「はい、あります。SwiftではUITableViewやUICollectionViewを使うことで、データを表のように並べたり、グリッド状に配置したりできます。」
生徒
「テーブルとかコレクションって難しそうですが、どんな仕組みなんですか?」
先生
「テーブル表示は、ノートの行に沿ってデータを並べるイメージで、コレクション表示はアルバムに写真を並べるイメージですね。それでは基本から見ていきましょう。」
1. UITableViewとは?
UITableViewは、iOSアプリでデータを縦方向に一覧表示するための仕組みです。例えば、電話帳やメールアプリの受信箱のように、下にスクロールして次々とデータを見られるのが特徴です。
テーブル表示を使うと、同じレイアウトの行を大量に効率よく表示できます。行ごとに名前やアイコンを並べたり、タップすると詳細画面に移動できるようにしたりと、アプリ開発でよく利用されます。
2. UICollectionViewとは?
UICollectionViewは、データをグリッド(格子)のように並べて表示する仕組みです。写真アプリのサムネイル表示やショッピングアプリの商品一覧などに使われています。
テーブルビューが「縦一列の一覧表示」なら、コレクションビューは「縦横に並べる表示」と考えるとわかりやすいです。
3. UITableViewの基本的な使い方
Swiftでテーブルビューを使うときは、以下の3つの要素が重要です。
- データソース(DataSource):テーブルに表示する内容を決める役割。
- デリゲート(Delegate):セルをタップしたときなどの動作を決める役割。
- セル(Cell):実際に表示される行のパーツ。
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let items = ["りんご", "バナナ", "みかん"]
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = self
tableView.delegate = self
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = items[indexPath.row]
return cell
}
}
このコードでは、果物の名前をテーブルに表示するシンプルな例です。スクロールできる一覧として簡単に実装できます。
4. UICollectionViewの基本的な使い方
コレクションビューも基本はテーブルビューと同じです。ただし、縦横のレイアウトが可能なので、デザインの自由度が高いのが特徴です。
import UIKit
class CollectionViewController: UIViewController, UICollectionViewDataSource {
let items = ["��", "��", "��"]
@IBOutlet weak var collectionView: UICollectionView!
override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = self
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
if let label = cell.contentView.viewWithTag(1) as? UILabel {
label.text = items[indexPath.row]
}
return cell
}
}
この例では、絵文字をコレクションビューに並べています。写真や商品画像を並べたいときも、この仕組みを応用できます。
5. UITableViewとUICollectionViewの違い
UITableViewとUICollectionViewの大きな違いを整理してみましょう。
| 特徴 | UITableView | UICollectionView |
|---|---|---|
| 表示の形 | 縦一列のリスト形式 | グリッドや自由なレイアウト |
| 用途 | 連絡先一覧、設定画面など | 写真ギャラリー、商品一覧など |
| カスタマイズ性 | シンプルで実装が容易 | 自由度が高く複雑なUIに対応 |
6. 初心者がつまずきやすいポイント
UITableViewやUICollectionViewを初めて使うときに、多くの初心者が混乱するのがデータソースとデリゲートです。これらは「誰がデータを渡すか」「誰が操作を受け取るか」を分ける役割を持っています。
例えるなら、データソースは「メニュー表を渡す店員さん」、デリゲートは「注文を聞いて調理場に伝える店員さん」と考えるとわかりやすいです。
7. セルのカスタマイズ
セルのデザインを変更すると、アプリの見た目がぐっと良くなります。例えば、文字だけでなく画像やボタンを配置したり、色やフォントを変えたりできます。
ストーリーボードでカスタムセルを作り、Swiftコードでデータを反映させることで、SNSやECアプリのようなリッチなUIを作れます。
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略
「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。
Windowsで実現する開発環境
【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。
【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。
この60分で得られる3つの理解
OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。
iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。
将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。
※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。
Windowsで始めるiPhoneアプリ開発入門