女子高生がUIAlertControllerを使ったツイートをしてたから作ってみた | Swift

はじめに

対象読者 超初心者
開発環境 Xcode7.2 swift2.1

なにをするのか

iPhone、iPadでエラーなどの時に出現するこれ



こんなの出てきたら速攻で「はい」押しちゃいますよね?
自分はRTしましたよ?え?

これの正式名称はUIAlertControllerといいます
昔はUIAlertViewとかって言ったらしいですが、今はもう非推奨です

Appleのリファレンスがこちら
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIAlertController_class/#//apple_ref/occ/clm/UIAlertController/alertControllerWithTitle:message:preferredStyle:


ということで、実際に作ってみました。

つくってみる


画面レイアウトは、とりあえずボタンを一つど真ん中に
波風立たせないで、真ん中にドーン



このボタンをタップした時に出るアラートが
さっきキュンキュンしたあれ
その命令文は以下のとおり
 

import UIKit

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    //ボタンがタップされた時
    @IBAction func btnTapped(sender: AnyObject) {
        
//        質問文をセット
        let alert:UIAlertController = UIAlertController(
                title: "今すぐ会いに行きたいひとが\nいますか?",
                message: "",
                preferredStyle: .Alert)
        
        let ok = UIAlertAction(
                title: "はい",
                style: .Default) {
            
            //本当はここでハイを押された時の処理を書く
            action in NSLog("はい")
        }
        
        //「はい」のボタンを追加する
        alert.addAction(ok)
        
//        質問文とボタンをセットした画面を表示
        presentViewController(alert, animated: true, completion: nil)
        
    }
    
}

これで無事、いつでもハイを押せますね笑
ちなみに"今すぐ会いに行きたいひとが\nいますか?"の「/n」は改行コードです

詳しく説明

アラートかアクションシートか?

この変更方法は
 
//        質問文をセット
        let alert:UIAlertController = UIAlertController(
                title: "今すぐ会いに行きたいひとが\nいますか?",
                message: "",
                preferredStyle: .Alert)

ここの最終行 preferredStyle: の値を .Alert か .ActionSheet に変更することで区別できます 実際の動作を見てみましょう

まずは「Alert」(アラート)


使うタイミングはアプリやデバイスに関する重要な情報を表示する時です


これが「ActionSheet」(アクションシート)

画面の下からニョキッと生えてくる奴

使うタイミングはユーザが開始したタスクに関連する一連の選択肢を表示するとき
この使うタイミングなどはAppleが公開しているiOSユーザインターフェースガイドラインに書かれています

iOSヒューマンインターフェースガイドラインー一時ビュー
https://developer.apple.com/jp/documentation/UserExperience/Conceptual/MobileHIG/Alerts/Alerts.html

文字を赤くしたい

ガイドラインには
すべての環境で、害を及ぼす可能性があるアクションの実行ボタンが必要であれば、赤のボタンを使用する。
とあります。
例えば、削除とかそういった操作ですね
会いたいひとがいないというのは、重大で害を及ぼす可能性があると考えられるので赤くしましょう笑

ソースコード


 let no = UIAlertAction(
            title: "いいえ",
            style: .Destructive) {
                
                //本当はここでいいえを押された時の処理を書く
                action in NSLog("いいえ")
        }

いいえと赤色で表示するために、
一番初めのソースコードの ok ボタンの定義の下に no ボタンを追加しました

「いいえ」の文字以外に変わっている場所は、3行目 style: .Destructive になっています
styleはぜんぶで3種類あり、

  • Default
  • Destructive
  • Cancel

です。
Cancelは一番下の項目で、固定されます。

実際の動作

まあ、文字が赤くなるだけなんですけどね





今回はこの辺で〜〜



コメント