今天要介紹的是鬧鐘的基本資訊編輯,我們平日工作或上學的時候可能需要鬧鐘週一~週五叫我們起床,但假日我們想睡到自然醒,我們就不需要鬧鐘的通知了! 所以我們需要去編輯,一~五固定通知!
這個是編輯有幾天會響鈴的頁面,可以重複打勾
其實裡面這塊是 TabelView 所以我們要先創建一個陣列來存放需要在 TabelView 的內容!
var day = ["Every Sonday" , "Every Monday" , "Every Tuesday" , "Every Wednesday" , "Every Thursday" , "Every Friday" , "Every Saturday"]
再來我們要把它寫進 TabelView 以下是 TabelView 的程式碼內容
以下是判斷需要印出多少 Cell 的程式碼
extension day_insert : UITableViewDelegate , UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
day.count
} //需要印出的 Cell 數量
再來我們要寫出判斷有哪幾天的天數是被勾選起來的,並且按下去的時候可以改變勾選的狀態!
我們要先建立一個單例,裡面存放我們要傳到編輯基本資訊頁面的值,也可以判斷有哪些值在這個頁面的 TabelView 是需要勾選起來的
因為預設是每一天,所以我們先給他 0、2、3、4、5、6 (依序是星期日~星期六))
class day_value {
var select = [0,1,2,3,4,5,6]
static let shared = day_value()
private init() {}
}
我們在之後要印出 Cell 裡面的內容
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "daypick_cell", for: indexPath) as! daypick_cell
cell.label.text = day[indexPath.row] //這邊就是根據 day[indexPath.row] 的陣列內容印出星期六~星期日
if day_value.shared.select.contains(indexPath.row) {
cell.accessoryType = .checkmark
}
else {
cell.accessoryType = .none
}
return cell
} //這邊是利用 .accessoryType 的內建函式去幫有在被選擇到的天數印上打勾的樣式,在單例陣列裡的會被打勾,沒有的話就不會印出
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if day_value.shared.select.contains(indexPath.row) {
day_value.shared.select = day_value.shared.select.filter{$0 != indexPath.row}
}
else {
day_value.shared.select.append(indexPath.row)
}
day_value.shared.select.sort(by: <)
tableView.reloadRows(at: [indexPath], with: .automatic)
}
} //這邊就是判斷當 Cell 被點擊到的時候需要把代表那個星期的數字放進單例陣列裡(day_value.shared.select)