「重複」頁面的畫面已經完成了,接著實作功能吧!
功能圖:
var isSelected: [Int] = []
2.在「RepeatAlarmViewController」的TableView didSelectRowAt()中,
新增以下程式碼,判斷該欄Cell是否有點擊過
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// 判斷目前點擊的Cell是否有儲存於陣列中,有存在陣列中代表有點擊過
if self.isSelected.contains(indexPath.row) {
// 若已選擇過,則將該index移除陣列內
self.isSelected = self.isSelected.filter{$0 != indexPath.row}
} else {
// 若未選擇過,則將該index加入陣列中
self.isSelected.append(indexPath.row)
}
tableView.reloadRows(at: [indexPath], with: .automatic)
}
3.在TableView的cellForRowAt中,新增以下程式碼,用來顯示已選取的Cell打勾的效果
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: RepeatAlarmTableViewCell.identifier, for: indexPath) as? RepeatAlarmTableViewCell else { return UITableViewCell() }
cell.titleLabel.text = titleDatas[indexPath.row]
// 預設Cell為沒被點擊過
cell.selectionStyle = .none
// 判斷Cell是否有在陣列中,有則打勾,沒有則不打勾
if self.isSelected.contains(indexPath.row) {
cell.accessoryType = .checkmark
} else {
cell.accessoryType = .none
}
return cell
}
現在來看一下效果
Cool~ 明天來實作將所選的資料回傳的部分