今天來加入更多的Dependencies,以及聊天開發的準備
那麼我們先來新增引用的函式庫。
在Podfile新增以下的指令,然後下載。
pod 'MessageKit'
pod 'JGProgressHUD'
pod 'RealmSwift'
pod 'SDWebImage'
先確認此時專案是可以complie的!
接著我們在對話的畫面新增tableView
private let tableView: UITableView = {
let table = UITableView()
table.isHidden = true // hide when there's no conversation
table.register(UITableViewCell.self,
forCellReuseIdentifier: "cell")
return table
}()
當沒有對話可以顯示的時候,我們將畫面的table view藏起來,並放上noConversationLabel作為提示畫面。
private let noConversationLabel: UILabel = {
let label = UILabel()
label.text = "No conversations yet."
label.textAlignment = .center
label.textColor = .gray
label.font = .systemFont(ofSize: 21, weight: .medium)
label.isHidden = true
return label
}()
接著在view load進來的時候,把sub view放到stake中
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(tableView)
view.addSubview(noConversationLabel)
setupTableView()
fetchConversations()
}
private func setupTableView() {
tableView.delegate = self
tableView.dataSource = self
}
private func fetchConversations() {
tableView.isHidden = false
}
前幾次文章有提到,我們在進行table view或是各種元件的呈現,會需要指派一個對象,此時我們將此對象指派給自己,不過就需要加上繼承,因為目前UITableView無法作為指派的對象。
而我們也提過,與主要邏輯無關的程式結構,可以另外使用extension來撰寫。
extension ConversationViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "Hello world"
cell.accessoryType = .disclosureIndicator // ">" at the right
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let vc = ChatViewController()
vc.title = "Jenny Smith"
vc.navigationItem.largeTitleDisplayMode = .never
navigationController?.pushViewController(vc, animated: true)
}
}
在此,轉換後的charViewController,因為還沒有資料跟畫面,我們先個假資料XD
好的!那今天就到這邊,有比前幾天的進度好一些些><
若上述內容有誤或可以改進的部分,歡迎留言以及提出任何指教~
謝謝 (´・∀・`)