サトリク
アプリの80%がリストを使っています。そのため、リストの作り方は絶対に覚えておかなければなりません。
この講座では、簡単なリストをさくっと作る方法をご紹介します!
動作環境
item | Version |
---|---|
Swift | 5.3 |
Xcode | 12.0.1 |
この講座の完成イメージ
たくさんのフルーツを表示するリストを作ってみたいと思います。
アプリ開発手順
プロジェクトを作成
いつも通り、Create a new Xcode project
>App
でプロジェクトを作成します。
①「Product Name」に、TableView
と入力
②「Interface」は、Storyboard
を選択
③「Language」はSwift
を選択
④全てチェックなし
⑤「Next」をクリック
①Practice
に保存しましょう。
②「Create」をクリック
これでプロジェクト作成が完了しました。
storyboard(画面レイアウト)の編集
①Main.storyboard
を選択
②画面の上のバーをクリック
③ (Embed In)を選択
④「Navigation Controller」をクリック
これでとりあえず、ナビゲーションバーができました。
①Titleを選択
② (Show the Attributes inspector)をクリック
③「Bar Tint」を任意の色(画像は#516C9D)に変更
④「Title Color」をWhite Color
に変更
①画面のナビゲーションバータイトルをクリック
② (Show the Attributes inspector)をクリック
③「Title」にリスト
と入力
①プラスボタンをクリック
②TableView
を画面にドラッグ&ドロップ
TableViewを画面いっぱい広げましょう。
①プラスボタン
②TableViewCell
をTableView
の上にドラッグ&ドロップ
①左のメニューからTableViewCell
を選択
② (Show the Attributes inspector)をクリック
③「identifier」にCell
と入力
①Table View
右クリック
②dataSource
をView Controller
にドラッグ&ドロップ
同じように、delegate
をドラッグ&ドロップで紐付けましょう。
これで、Storyboard
の紐付けが完了です。
コーディング
次に、テーブルのセルの中身を書いていきたいと思います。
まずは、ViewController.swift
を開きましょう。
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } }
class ViewController: UIViewController {
を
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
に変更しましょう。
ここでは、先ほど、Storyboardで紐付けた、DelegateとDataSourceを使えるようにしています。
この時点では、エラーが起きていますが、気にしないでください。
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var fruits = ["りんご", "みかん", "ブドウ", "レモン", "スイカ"] override func viewDidLoad() { super.viewDidLoad() } }
フルーツのデータが入っている配列を用意します。
ここに入っている単語がテーブルに表示されるようになります。
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var fruits = ["りんご", "みかん", "ブドウ", "レモン", "スイカ"] override func viewDidLoad() { super.viewDidLoad() } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return fruits.count } }
上記のように追加してください。
ここでは、テーブルに表示するセルの数を指定しています。
今回は、fruits.count「フルーツの数」で指定していますので、「5」です。
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var fruits = ["りんご", "みかん", "ブドウ", "レモン", "スイカ"] override func viewDidLoad() { super.viewDidLoad() } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return fruits.count } //追加 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) cell.textLabel!.text = fruits[indexPath.row] return cell } }
ここでは、テーブルのセルの内容を決めているんだなぁ程度の理解で大丈夫です。
cell.textLabel!.text = fruits[indexPath.row]
で、テーブルのセルに、フルーツの値を入れています。
これでコーディングは終わりです。
実行
実行して確認しましょう。
このようになっていれば成功です。
まとめ
うまくできましたでしょうか?
今回の講座のリストは超簡単に作れるリストです。もっと色々とリストを装飾するならカスタムセルというものを使います。カスタムセルの使い方については、またこの講座でやりますので、お待ちください。
サトリク
独学でアプリ開発は厳しくないですか?
このブログ(satorikublog)の筆者サトリクが、初心者の方に教えるサービスをはじめました。
気軽にご相談ください!
次の講座
【Swift/Xcode超入門】ToDoリストを作ってみよう①〜プロジェクト作成からレイアウト作成まで〜
本で勉強したい方はこちら
【2021年版】Swift5/Xcode/OSアプリ開発のオススメ参考書・本・書籍まとめ。初心者から上級者まで!
ゼロから学ぶiPhoneアプリ開発入門