iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天Swift純Code之旅 - 鬧鐘篇系列 第 10

Swift純Code之旅 Day10. 「TableView(2) - TableView Cell註冊」

前言

昨天已經將addAlarmContentTableViewCell的元件都建立完畢了,但是畫面上居然沒顯示,今天就來要解開這個謎底。

解開

為什麼addAlarmTableView上面會沒有顯示addAlarmContentTableViewCell呢?

那是因為:

  1. 沒有在 addAlarmTableView 中註冊 addAlarmContentTableViewCell
  2. 沒有在 addAlarmViewController 中實作 addAlarmContentTableViewCell 的「Delegate」 & 「DataSource」

註冊TableViewCell

那要如何在 addAlarmTableView 中註冊 addAlarmTableViewCell呢?

  1. 在addAlarmTableViewCell 中新增一個Static變數,用來當作該 TableViewCell 的識別碼。
static let identifier = "addAlarmContentTableViewCell"

這邊用Static是為了讓其他地方(1. TableView註冊、2. 實作TableView Delegate時)可以直接使用到,

  1. 接著再到 addAlarmTableView 中,新增「註冊addAlarmContentTableViewCell」的程式碼。
let addAlarmTableView: UITableView  = {
        let tableView = UITableView()
        // 註冊 addAlarmContentTableViewCell
        tableView.register(addAlarmContentTableViewCell.self,
                           forCellReuseIdentifier: addAlarmContentTableViewCell.identifier)
        return tableView
    }()

tableView.register()共有兩個引數,分別代表

  1. 要註冊哪個Cell?
  2. 要註冊的Cell的識別碼?

因此我們第一個引數放入「addAlarmContentTableViewCell.self」,代表我們要註冊「addAlarmContentTableViewCell」這個Cell。

Q:那至於第二個引數要放入什麼識別碼呢?

A:還記得我們開頭有新增了一組 addAlarmContentTableViewCell的識別碼嗎?
沒錯! 就是放入這組識別碼,這樣一來TableViewCell的註冊環節就結束了/images/emoticon/emoticon59.gif


OK,那這樣TableViewCell的註冊就完成了,明天繼續來實作 TableView 的「Delegate」&「DataSource」


上一篇
Swift純Code之旅 Day9. 「TableView(1) - TableView Cell內容製作」
下一篇
Swift純Code之旅 Day11. 「TableView(3) - 實作Delegate & DataSource」
系列文
30天Swift純Code之旅 - 鬧鐘篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言