我正在嘗試使用自定義單元格填充我的 tableView - 看起來很簡單,但是由于某種原因,當我運行以下代碼時,自定義單元格沒有出現?我覺得我錯過了一些非常明顯的東西。
自定義單元格名稱為: OffersTableViewCell
儀表板視圖控制器
class DashboardViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.dataSource = self
self.tableView.delegate = self
self.registerTableViewCells()
}
func tableView(_ tableView: UITableView,
numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if let cell = tableView.dequeueReusableCell(withIdentifier: "OffersTableViewCell") as? OffersTableViewCell {
return cell
}
return UITableViewCell()
}
private func registerTableViewCells() {
let textFieldCell = UINib(nibName: "OffersTableViewCell",
bundle: nil)
self.tableView.register(textFieldCell,
forCellReuseIdentifier: "OffersTableViewCell")
}
}
優惠TableViewCell
import UIKit
class OffersTableViewCell: UITableViewCell {
@IBOutlet weak var offerTitle: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
uj5u.com熱心網友回復:
我認為您應該能夠使用下面的代碼解決問題。我建議我們洗掉 UITableViewCell()。
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.dataSource = self
self.tableView.delegate = self
self.registerTableViewCells()
self.tableView.reloadData()
}
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "OffersTableViewCell", for: indexPath) as! OffersTableViewCell
return cell
//put any other exception conditions to display UITableViewCell() if necessary
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
uj5u.com熱心網友回復:
你的代碼對我有用。嘗試執行以下步驟:
- 檢查.xib檔案是否命名為OffersTableViewCell.xib

- 檢查檔案的所有者類是否為
OffersTableViewCell
- 確保您洗掉了.xib中的默認視圖并創建了
UITableViewCell - 檢查單元格的類別是否為
OffersTableViewCell
- 檢查單元格識別符號是否為OffersTableViewCell

- 檢查情節提要中的視圖控制器類是否為
DashboardViewController - 確保您
DashboardViewController在應用程式中打開
uj5u.com熱心網友回復:
確保您有名為的單元格 - OffersTableViewCell.swift 類,以及具有該單元格 UI 的 OffersTableViewCell.xib。
override func viewDidLoad() {
super.viewDidLoad()
self.registerTableViewCells()
self.tableView.dataSource = self
self.tableView.delegate = self
}
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "OffersTableViewCell", for: indexPath) as? OffersTableViewCell else { return UITableViewCell() }
cell.offerTitle.text = "blabla.."
return cell
}
請在分配 tableView 委托和資料源之前注冊單元格。或者在注冊單元 Nib 后呼叫 reloadData。
另外,請確保您正在加載安全資料,否則請回傳默認 TableViewCell。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465192.html
