Ios UITableView始终在Swift中显示基本单元格而不是自定义单元格
我花了数小时试图解决这个问题,但我的简单应用程序仍然显示基本单元类型,而不是我的原型单元。我知道在加载视图后使用标识符并进行注册,但它仍然显示只有一个标签的基本单元格 以下是我目前的代码: 我的原型使用此UITableViewCell:Ios UITableView始终在Swift中显示基本单元格而不是自定义单元格,ios,swift,uitableview,xcode9,Ios,Swift,Uitableview,Xcode9,我花了数小时试图解决这个问题,但我的简单应用程序仍然显示基本单元类型,而不是我的原型单元。我知道在加载视图后使用标识符并进行注册,但它仍然显示只有一个标签的基本单元格 以下是我目前的代码: 我的原型使用此UITableViewCell: class CoinTableViewCell: UITableViewCell { @IBOutlet weak var coinIcon: UIImageView! @IBOutlet weak var coinTitleLabel: UI
class CoinTableViewCell: UITableViewCell {
@IBOutlet weak var coinIcon: UIImageView!
@IBOutlet weak var coinTitleLabel: UILabel!
@IBOutlet weak var holdings: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
UITableViewController:
class CoinTableViewController: UITableViewController {
var coins = ["Coin1","Coin2","Coin3"]
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.register(CoinTableViewCell.self, forCellReuseIdentifier: "currency_cell")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return coins.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:CoinTableViewCell! = self.tableView.dequeueReusableCell(withIdentifier: "currency_cell", for: indexPath) as! CoinTableViewCell
let coinName = coins[indexPath.row]
cell.coinTitleLabel?.text = coinName
return cell!
}
}
如果有人能帮我解决这个问题,我将不胜感激 您直接在故事板的tableview上创建自定义单元格,对吗? 如果是这种情况,则不需要在
viewDidLoad
中注册单元格,因为故事板会处理这个问题。你只要把它弄好就行了
如果您手动注册它,您只需覆盖故事板所做的事情,并在从代码实例化单元时得到一个常规单元,而不是从故事板实例化单元
干杯您正在故事板的tableview上直接创建自定义单元格,对吗? 如果是这种情况,则不需要在
viewDidLoad
中注册单元格,因为故事板会处理这个问题。你只要把它弄好就行了
如果您手动注册它,您只需覆盖故事板所做的事情,并在从代码实例化单元时得到一个常规单元,而不是从故事板实例化单元
干杯
让单元格:CoinTableViewCell!=self.tableView.dequeueReusableCell(标识符为:“currency\u cell”,for:indexath)为!如果不是CoinTableViewCell
,CoinTableViewCell将崩溃。。其他地方有错误。如果您使用的是故事板,则不需要注册单元重用标识符。我同意,你还有其他问题。您为表视图设置了委托和数据源了吗?是的,我通过将self.tableView.delegate=self和self.tableView.dataSource=self包含在viewDidLoad()中完成了设置。为了更好的可读性,我省略了这些行。您是否对单元格设置了限制以便显示内容?您是否设置了断点来验证是否正在调用numberOfRow
函数?如何创建此视图控制器?它是故事板中的初始视图控制器吗?如果在行的单元格中取消条件展开cell.coinTitkeLabel.text,会发生什么情况?;你把你的原型单元和你的单元类联系起来了吗?佩拉发现了这个错误。我已将原型替换为普通原型。let cell:CoinTableViewCell!=self.tableView.dequeueReusableCell(标识符为:“currency\u cell”,for:indexath)为!如果不是CoinTableViewCell
,CoinTableViewCell将崩溃。。其他地方有错误。如果您使用的是故事板,则不需要注册单元重用标识符。我同意,你还有其他问题。您为表视图设置了委托和数据源了吗?是的,我通过将self.tableView.delegate=self和self.tableView.dataSource=self包含在viewDidLoad()中完成了设置。为了更好的可读性,我省略了这些行。您是否对单元格设置了限制以便显示内容?您是否设置了断点来验证是否正在调用numberOfRow
函数?如何创建此视图控制器?它是故事板中的初始视图控制器吗?如果在行的单元格中取消条件展开cell.coinTitkeLabel.text,会发生什么情况?;你把你的原型单元和你的单元类联系起来了吗?佩拉发现了这个错误。我把我的原型换成了普通的。你说得对!删除注册确实解决了我的问题。谢谢你,你说得对!删除注册确实解决了我的问题。非常感谢。