ios - 具有自定义单元格类的 UITableView 显示正确的行数但全部为空白
问题描述
我似乎无法弄清楚为什么我的表格中的单元格都是空白的,带有自定义单元格。我已经搜索并尝试了一段时间的建议,但无法弄清楚。在这一点上,我觉得我错过了一些明显的东西
这是我的 .swift
import UIKit
struct Contact {
var name:String
var title:String
var phone:String
}
class ContactTableViewCell: UITableViewCell {
@IBOutlet weak var contactName: UILabel!
@IBOutlet weak var contactTitle: UILabel!
@IBOutlet weak var contactPhone: UILabel!
}
class Contacts:UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var contactTable: UITableView!
var contactData = [
Contact(name: "Main Office", title: "Title", phone: "Phone Here"),
Contact(name: "Joe Bloggs", title: "Title Here", phone: "Phone Number"),
Contact(name: "John Smith", title: "Another Title", phone: "Another Phone")
]
override func viewDidLoad() {
super.viewDidLoad()
contactTable.register(ContactTableViewCell.self, forCellReuseIdentifier: "cellId")
contactTable.delegate = self
contactTable.dataSource = self
}
func tableView(_ contactTable: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.contactData.count
}
func numberOfSectionsInTableView(contactTable: UITableView) -> Int {
return 1
}
func tableView(_ contactTable: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let contactCell = contactTable.dequeueReusableCell(withIdentifier: "cellId", for: indexPath) as! ContactTableViewCell
let contact = contactData[indexPath.row]
contactCell.contactName?.text = contact.name
contactCell.contactTitle?.text = contact.title
contactCell.contactPhone?.text = contact.phone
return contactCell
}
}
我的 IBOutlets 肯定是链接的,并且单元格链接到 ContactTableViewClass
这就是我的细胞的样子
任何帮助将不胜感激,谢谢
解决方案
评论这一行
contactTable.register(ContactTableViewCell.self, forCellReuseIdentifier: "cellId")
并将标识符设置为cellId
IB 中的单元格,当您创建原型单元格时,不要注册它,因为注册会自动发生
在您的情况下,所有网点均为零
// try contactCell.contactName.text and it' ll crash
contactCell.contactName?.text = contact.name
contactCell.contactTitle?.text = contact.title
contactCell.contactPhone?.text = contact.phone
当您使用在 IB 中创建布局的类覆盖 IB 注册时,就像您ContactTableViewCell.self
以编程方式完全创建具有其布局的类时一样
推荐阅读
- python - 在 html 页面呈现之前更改视图中的值
- html - 只有三种颜色的下拉菜单
- javascript - javascript dispatchevent回调函数
- django - 试图对 django 模型进行计算
- arrays - 通过二维数组输入字符串
- webservicetemplate - PoolingHttpClientConnectionManager - TTL 构造函数和相关问题
- android - Android 管理设备配置失败
- android - Flutter - firebase 动态链接预览图像在某些应用程序中旋转
- reactjs - 尝试下载 PDF 并使用 express 设置文件名
- openstreetmap - 从开放的街道地图数据库中提取数据