嗨,大家好,我是 Lacie,您現在收看的是 Swift - 來吧!鐵人三十項 系列的第二八篇
在鐵人賽完結後,為保持持續做筆記的習慣
將會在我的 Medium 繼續撰寫文章,若有興趣者可前往觀看。
本次要複習的東西,是你觸碰某個地方後,會彈出一個視窗,裡面可能有地方給你填東西、或者有幾個選項可以按,又或者只有 OK 及 Cancel 能按而已
以上這種應用叫作 UIAlert,是非常常見的一個東西,下面為範例圖:
要構成一個 UIAlert,首先必須要有一個 UIAlertController
下圖為程式碼:
其中的重點:
title:如圖中"起床吃早餐囉!",這部分是大標題
message:如圖中"不起來要被吃光了",這部分是敘述
preferredStyle:想要呈現的 alert 形式,分為 .alert 及 .actionsheet 圖中為 .alert
要構成一個 UIAlert,第二個你必須要有一個按鈕,不然你關不掉
下圖為程式碼:
其中的重點:
title:如圖中"好啦",這部分是按鈕的名稱
style:按鈕呈現的形式因用途不同分為 .default .destructive .cancel 圖中為 .default
handler:此部分可寫成「閉包」,可用於按下按鈕後執行一些程式碼,圖中為 nil
寫完上述兩部分的結構後,現在要將 UIAlert 生成需要兩行程式碼:
//將按鈕加進 alert 裡
alert.addAction(action)
//呈現這個 alert , animated 表示是否要有一點彈出動畫
present(alert, animated: true, completion: nil)
UIAlertController 中若選擇 .alert 會如第一張圖,將 alert 彈出在螢幕中間
而若選擇 .actionsheet 的話則會在下方彈出
UIAlertAction中有三種形式的按鈕 .default .destructive .cancel
分別為 無特殊效果、加深紅字效果、字體加粗效果,用作呈現提醒按下按鈕的後果
下圖為範例:
而若是選擇 .cancel 的選項在 .actionsheet 裡會被排在最後面