Swift on Xcode#6[按鈕UIButton、提示框UIAlertController]

影山小麥機
Jul 13, 2021

--

前言

開始UI系列的東西之後,大概做了UIView、UILabel、UITextField、UITextView四個相關的功能,今天要繼續寫的是UIButton、UIAlertController。

正文

1.UIBotton

以下就要創建一般的小按鈕:

  1. 如果是創建+號的話,就用.contactAdd
  2. 如果是創建!號的話,就用InfoLight

其餘就跟UIView等差不多…

自定義按鈕則如下:

也都跟之前的差不多,唯一比較特別是下面這個按鈕按下去會讓self.view切換顏色:

2.UIAlertController

提示框的內容如下:

上面type設置是.system,除此之外比較特別的就是ViewController的simpleHint

因為我們等一下會在按鈕設置裡面做一個叫做SimpleHint的東西,所以要回到上面的Class:ViewController下去做設定(跟之前的都一樣)

  1. UIAlertController是提示框內會顯示什麼內容
  2. UIAlertAction是控制點按
  3. addAction是顯示點按按鈕在提示框上
  4. 最後用present去展示

要做其他按鈕?

可以,其實就是依此類推,然後要記得style要更改一下

style: .destructive會把文字改成紅色的,表示點按下去「就去了」

有輸入框的提示框

我們先來創建一個按鈕,type要指定為.normal(68行),addTarget內部的action要指定為#selector(ViewController.login)(76–79行),等一下login要在class:ViewController下自定義。

會變這樣:

下面是點按Login後的提示框建構:

  1. 14–17行是創建提示框
  2. 20–23是帳號輸入框
  3. 24–29是密碼輸入框

弄完會變這樣:

取消按鈕,注意style: .cancel

登入按鈕,這邊要注意的則是登入帳號、密碼的寫法

這裡有幾個重點需要注意:

  1. 44–46行,alertController下的方法,不知道裡面有沒有東西,但以第一個為主,且強制解包,轉至UIAlertAction下的UITextField
  2. 47–49行,跟上面同樣意思
  3. 接著51-53會把它打印出來,就是預設好的字樣

從底部彈出的提示

如果我們要把登入的改成一個會彈出來的視窗呢?

基本會改動的東西,在super.viewDidLoad( )之下並不多,目前改動的就是48行的title為”Some Notice”,以及實際要讓按鈕連接下一個動作的52–55行的action,ViewController.bottomAlert。

接著要實際在方法裡面設置按鈕的功能:

這邊的title、message什麼的都是一樣的東西,唯一改動的是preferredStyle: .actionSheet,這會讓它從底部彈上來。

接著,我們在這裡會兩個按鍵:一個是取消、一個是確認。

唯一不一樣的部分是:style:.cancel、style:.default

handler是指按下去會執行的動作,而這裡暫時沒有讓它值行動作,因此以nil告終。

最後用一個self.present把它展示出來。

--

--

影山小麥機

本職為Mobile工程師,熱愛分享視野,也樂意站在ChatGPT的肩膀上。訂閱小麥機,收割技術、職涯、人生的難題。