我制作了一个自定义单元格,并使用.xib在表格视图中显示。 但是这个单元格没有在表格视图中显示。而其他自定义单元格则很好。
Cell Controller:
import UIKit
//Protocol to add action on button click
protocol ChatLinkButtonDelegate: class {
func chatLinkClick(cell: ChatBankController)
}
class ChatBankController: UITableViewCell {
@IBOutlet weak var btnseemore: CustomUIButton!
@IBOutlet weak var year: CustomUILabel!
@IBOutlet weak var anwser: CustomUILabel!
@IBOutlet weak var month: CustomUILabel!
@IBOutlet weak var interest: CustomUILabel!
var delegate: ChatLinkButtonDelegate?
override func prepareForReuse() {
super.prepareForReuse()
self.delegate = nil
}
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
}
@IBAction func btnChatLinkClick(_ sender: Any) {
self.delegate?.chatLinkClick(cell: self)
}
}
表视图加载和显示数据的控制器: 注册:
cell = UINib(nibName: "ChatBank", bundle: nil)
self.tbChat.register(cell, forCellReuseIdentifier: "ChatBankCell")
将单元格加载到tableview:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:ChatBankController = self.tbChat.dequeueReusableCell(withIdentifier: "ChatBankCell") as! ChatBankController
cell.anwser.text="fine"
return cell
let cell = UITableViewCell()
return cell
}
答案 0 :(得分:0)
在视图controller.swift文件视图中注册nib文件,加载方法并设置tableview数据源并委托像
override func viewDidLoad() {
super.viewDidLoad()
yourTableView.register(UINib.init(nibName:"ProfileTableViewCell" , bundle: nil), forCellReuseIdentifier: "ProfileTableViewCell")
yourTableView.datasource = self
yourTableView.delegate = self
}
答案 1 :(得分:0)
首先,请检查您是否在故事板中连接了表格视图的委托和datsource。
然后试试这段代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = self.tbChat.dequeueReusableCell(withIdentifier: "ChatBankCell") as! ChatBankController
cell.anwser.text="fine"
return cell
}