我似乎无法弄清楚为什么自定义单元格中的单元格都为空白。我一直在搜索和尝试建议已有一段时间,但无法弄清楚。在这一点上,我觉得我缺少明显的东西
这是我的.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
这是我的手机外观
任何帮助将不胜感激,谢谢
答案 0 :(得分:1)
评论此行
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
当您使用在布局中以ContactTableViewCell.self
在IB中创建布局的类覆盖IB注册时,就是完全以编程方式创建具有其布局的类