У меня проблемы с отображением пользовательских ячеек в виде таблицы. Я удостоверился, что установил идентификатор повторного использования ячеек в раскадровке и подключил свои IBOutlets к моим ярлыкам ячеек, но показываются только ячейки по умолчанию, а не мои собственные. Вот код для моего контроллера табличного представления и ниже для моей ячейки табличного представления:
class HoursTableViewController: UITableViewController {
@IBOutlet var hourDonationSegmentedButton: UISegmentedControl!
@IBOutlet var addEntryButton: UIButton!
@IBOutlet var editEntryButton: UIButton!
var hoursEntries = [HoursEntry]()
var dummyData : [HoursEntryTest] = [HoursEntryTest(hours: 1, minutes: 30, entryTitle: "title", organization: "unicef", content: "content", date: Date(timeIntervalSinceNow: 0))]
let cellReuseIdentifier = "HoursTableViewCell"
override func viewDidLoad() {
super.viewDidLoad()
prepareTableView()
}
func prepareTableView() {
self.tableView.dataSource = self
self.tableView.delegate = self
self.tableView.register(HoursTableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier)
}
}
extension HoursTableViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dummyData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell : HoursTableViewCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier, for: indexPath) as! HoursTableViewCell
let hoursEntry = dummyData[indexPath.row]
cell = setCellTextFromHoursEntry(currentCell: cell, hoursEntry: hoursEntry)
return cell
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func setCellTextFromHoursEntry(currentCell: HoursTableViewCell, hoursEntry: HoursEntryTest) -> HoursTableViewCell {
currentCell.entryTitleLabel!.text = hoursEntry.entryTitle;
currentCell.organizationLabel!.text = hoursEntry.organization;
currentCell.dateLabel!.text = "placeholder date"
currentCell.hourLabel!.text = String(hoursEntry.hours);
currentCell.minuteLabel!.text = String(hoursEntry.minutes);
return currentCell;
}
}
class HoursTableViewCell : UITableViewCell {
@IBOutlet var entryTitleLabel: UILabel! = {
let label = UILabel()
return label
}()
@IBOutlet var organizationLabel: UILabel! = {
let label = UILabel()
return label
}()
@IBOutlet var dateLabel: UILabel! = {
let label = UILabel()
return label
}()
@IBOutlet var hourLabel: UILabel! = {
let label = UILabel()
return label
}()
@IBOutlet var minuteLabel: UILabel! = {
let label = UILabel()
return label
}()
Я ценю помощь!