LoginSignup
1
2

More than 3 years have passed since last update.

Swiftのダイアログの基本の基

Last updated at Posted at 2021-01-06

Swiftのダイアログの基本の基

非エンジニアで最近Swiftを勉強している友人に「ダイアログって何?どう構築するの?」と質問された際を想定し、
ダイアログの基本についてまとめます。

※主に自身の毎日の復習・学習の機会創出、アウトプットによる知識の定着を目的としております。
暖かい目で読んで頂けますと幸いです。

ダイアログとは

ユーザーに入力を求めたり、何かの通知を行うために表示される小さなウィンドウ「ダイアログボックス」の略称。

例えば、ログアウトの際にログアウトボタンを押した後、「本当にログアウトしますか?」(選択肢:「はい」or「いいえ」)などが表示画面の上にぽっと表示されるあれです。

実装コード

まずは基本のコードを記載します。
※説明は後半に記載します。

//今回はdisplayDialogメソッドとして作成します。
func displayDialog(){
  //ここからが本題
  //=====================
  //STEP1
  //ダイアログのインスタンスを設定。
  //タイトルとメッセージをString型で設定
  //preferredStyle後ほど説明
  //=====================
  let mDialog = UIlertControlle(title: "タイトル", message: "メッセージ内容", preferredStyle: .alert)

  //=====================
  //STEP2
  //選択肢(ボタン)を作成 ※今回は一つだけ
  //タイトルとスタイルを選択 ※スタイルについては後述
  //=====================
  mDialog.addAction(UIAlertAction(title: "ボタンのタイトル", style: .default, handler: { action in
            //ここにタップ時の動作を記入
        }))

  //=====================
  //STEP3
  //ダイアログを表示
  //=====================
  self.present(mDialog,animated: true,completion: nil)

}

STEP1 ダイアログのインスタンスを設定+各種値を入力

まずはダイアログ「AlertController」のインスタンスを作成します。
引数として「title」「message」「preferredStyle」が必要です。

title

String型でダイアログのタイトルを入力します

message

String型でダイアログに表示する本文を入力します

preferredStyle

.alert : 画面の中央に表示させる
.actionSheet : 画面下部に下からせりあがる形式で表示させる。

STEP2 ダイアログのボタンを設定

.addActionで用いてダイアログに選択肢(ボタン)を設定する。
UIAlertActionで選択されたときのアクションなどを設定する。
引数として「title」「style」「handler」が必要です。

title

String型でボタンのタイトルを入力します

style

Default : 通常の選択肢
Destructive : 赤字表示(※否定的な選択肢を表示する際に利用)
Cancel : 一番下に表示されるかつ一つしか表示できない

handler

タップ時の動作を記入

STEP3 ダイアログを表示

presentを用いて表示

おまけ

ダイアログについては、SCLAlertViewと言う簡単にカッコ良いアニメーションのついたダイアログを表示できるライブラリがあります。
そちらを利用してみても良いかもしれません。

[Swift] 簡単に、かっこいいアニメーションアラートが表示できる、SCLAlertViewについて

まとめ

このようにまとめてみると、ダイアログは非常に簡単ですが、一つ一つのオプションなどの選択肢もあり、用途別でいろいろ調整できることがわかりました。一旦アウトプットする手を止めて、基本部分でも体系的な知識を学ぶメリットは大きいですね。

普段はDefaultとかがあればそれで良いかと何も考えず利用してしまうので、今回のように指定できる選択肢を知ることの必要性をひしひしと感じております。

利用用途に合わせて今後細かい設定もしていきたいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2