在前幾天我們已經規劃好整體的 UI 架構,今天開始進入 自訂 Cell 的設計。
在鬧鐘 App 的主畫面中,每一列都會顯示一個鬧鐘,這就是由 MainTableViewCell 來負責。
import UIKit
class MainTableViewCell: UITableViewCell {
@IBOutlet weak var lbNoon: UILabel!
@IBOutlet weak var lbTime: UILabel!
@IBOutlet weak var lbClock: UILabel!
@IBOutlet weak var swTime: UISwitch!
override func awakeFromNib() {
super.awakeFromNib()
// Cell 初始化時會呼叫這裡
}
override func prepareForReuse() {
super.prepareForReuse()
lbTime.text = nil
lbClock.text = nil
swTime.isOn = false
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// 點擊 Cell 時的選取狀態
}
}
IBOutlet 元件
lbNoon
→ 顯示上午/下午 (AM / PM)lbTime
→ 顯示時間(HH:mm)lbClock
→ 顯示鬧鐘名稱或重複天數swTime
→ 控制鬧鐘是否開啟的 SwitchawakeFromNib()
prepareForReuse()
setSelected()
MainTableViewCell 搭配 XIB 檔案來設計 UI,主要步驟如下:
新增一個 MainTableViewCell.xib
在畫面中放入以下元件:
對應到程式碼中的 IBOutlet。
使用 Auto Layout 設定好位置與間距,確保在不同裝置上顯示正常。
其實這個 XIB 很簡單,只要拖曳幾個 Label 與 Switch,然後加上約束就能完成。
今天我們完成了 MainTableViewCell 的介紹:
這個 Cell 是主畫面最核心的部分,接下來我們會把它跟 MainViewController 串接,讓畫面能真正顯示一個個鬧鐘。