前言
開始UI系列的東西之後,大概做了UIView、UILabel、UITextField、UITextView四個相關的功能,今天要繼續寫的是UIButton、UIAlertController。
正文
1.UIBotton
以下就要創建一般的小按鈕:
- 如果是創建+號的話,就用.contactAdd
- 如果是創建!號的話,就用InfoLight
其餘就跟UIView等差不多…
自定義按鈕則如下:
也都跟之前的差不多,唯一比較特別是下面這個按鈕按下去會讓self.view切換顏色:
2.UIAlertController
提示框的內容如下:
上面type設置是.system,除此之外比較特別的就是ViewController的simpleHint
因為我們等一下會在按鈕設置裡面做一個叫做SimpleHint的東西,所以要回到上面的Class:ViewController下去做設定(跟之前的都一樣)
- UIAlertController是提示框內會顯示什麼內容
- UIAlertAction是控制點按
- addAction是顯示點按按鈕在提示框上
- 最後用present去展示
要做其他按鈕?
可以,其實就是依此類推,然後要記得style要更改一下
style: .destructive會把文字改成紅色的,表示點按下去「就去了」。
有輸入框的提示框
我們先來創建一個按鈕,type要指定為.normal(68行),addTarget內部的action要指定為#selector(ViewController.login)(76–79行),等一下login要在class:ViewController下自定義。
會變這樣:
下面是點按Login後的提示框建構:
- 14–17行是創建提示框
- 20–23是帳號輸入框
- 24–29是密碼輸入框
弄完會變這樣:
取消按鈕,注意style: .cancel
登入按鈕,這邊要注意的則是登入帳號、密碼的寫法
這裡有幾個重點需要注意:
- 44–46行,alertController下的方法,不知道裡面有沒有東西,但以第一個為主,且強制解包,轉至UIAlertAction下的UITextField
- 47–49行,跟上面同樣意思
- 接著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把它展示出來。