iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 28
0

前前言

嗨,大家好,我是 Lacie,您現在收看的是 Swift - 來吧!鐵人三十項 系列的第二八篇
在鐵人賽完結後,為保持持續做筆記的習慣
將會在我的 Medium 繼續撰寫文章,若有興趣者可前往觀看。


前言

本次要複習的東西,是你觸碰某個地方後,會彈出一個視窗,裡面可能有地方給你填東西、或者有幾個選項可以按,又或者只有 OK 及 Cancel 能按而已
以上這種應用叫作 UIAlert,是非常常見的一個東西,下面為範例圖:


UIAlertController 構成

要構成一個 UIAlert,首先必須要有一個 UIAlertController
下圖為程式碼:

其中的重點:

title:如圖中"起床吃早餐囉!",這部分是大標題
message:如圖中"不起來要被吃光了",這部分是敘述
preferredStyle:想要呈現的 alert 形式,分為 .alert 及 .actionsheet 圖中為 .alert


UIAlertAction 構成

要構成一個 UIAlert,第二個你必須要有一個按鈕,不然你關不掉
下圖為程式碼:

其中的重點:

title:如圖中"好啦",這部分是按鈕的名稱
style:按鈕呈現的形式因用途不同分為 .default .destructive .cancel 圖中為 .default
handler:此部分可寫成「閉包」,可用於按下按鈕後執行一些程式碼,圖中為 nil


生成 UIAlert

寫完上述兩部分的結構後,現在要將 UIAlert 生成需要兩行程式碼:

//將按鈕加進 alert 裡
alert.addAction(action)
//呈現這個 alert , animated 表示是否要有一點彈出動畫
present(alert, animated: true, completion: nil)

額外學習

UIAlertController 中若選擇 .alert 會如第一張圖,將 alert 彈出在螢幕中間
而若選擇 .actionsheet 的話則會在下方彈出

UIAlertAction中有三種形式的按鈕 .default .destructive .cancel
分別為 無特殊效果、加深紅字效果、字體加粗效果,用作呈現提醒按下按鈕的後果

下圖為範例:

而若是選擇 .cancel 的選項在 .actionsheet 裡會被排在最後面


上一篇
Day27:當天的鐵人當天寫 - Higher-Order Functions & Closure(3)
下一篇
Day29:本地推播通知 - Local UserNotification(2)
系列文
Swift - 來吧!鐵人三十項30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言