У меня есть сгруппированный вид таблицы, в котором я хочу иметь настроенные заголовки разделов. Но у меня возникли проблемы с отображением первого заголовка раздела для представления таблицы.Заголовок заголовка первой сгруппированной таблицы, не отображающий
У меня есть две секции и секции заголовка для первой секции не отображается, но второй является:
Я видел подобные проблемы и те проблемы, где решаются путем реализации heightForHeaderInSection
но я внедрили это.
Я устанавливаю разделы как это:
let kSectionHeaderContact: String = "CONTACT INFORMATION"
let kSectionHeaderFeedback: String = "FEEDBACK"
enum Sections: Int {
case ContactSection = 0
case FeedbackSection = 1
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 2
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if section == Sections.ContactSection.rawValue {
return contactObjectsDictionary.count
} else if section == Sections.FeedbackSection.rawValue {
return feedbackObjectsDictionary.count
} else {
return 0
}
}
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if section == Sections.ContactSection.rawValue {
sectionHeaderView.sectionHeaderTitle.text = kSectionHeaderContact
} else if section == Sections.FeedbackSection.rawValue {
sectionHeaderView.sectionHeaderTitle.text = kSectionHeaderFeedback
}
return sectionHeaderView
}
override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return kContactTableViewSectionHeaderViewHeight
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(kCellIdentifierContactTableViewCell, forIndexPath: indexPath) as! ContactTableViewCell
// Configure the cell...
var titleText: String = ""
var detailText: String = ""
if indexPath.section == Sections.ContactSection.rawValue {
let contactObject = contactObjectsDictionary[indexPath.row]
titleText = contactObject[kDictionaryTitleKey]!
detailText = contactObject[kDictionaryDetailKey]!
} else if indexPath.section == Sections.FeedbackSection.rawValue {
let feedbackObject = feedbackObjectsDictionary[indexPath.row]
titleText = feedbackObject[kDictionaryTitleKey]!
detailText = feedbackObject[kDictionaryDetailKey]!
}
cell.configureCell(titleText, detail: detailText)
return cell
}
Я реализует свой собственный заголовок раздела в раскадровке, а затем ссылаться на него по выходу:
Edited : Я хочу иметь возможность создавать свой собственный заголовок раздела в раскадровке, а не программно.
Но почему я не могу использовать свой вид из раскадровки с @IBOutlet var sectionHeaderView: ContactTableViewSectionHeaderView! Справка? Он имеет класс «ContactTableViewSectionHeaderView», который является подклассом UIView – Oskariagon
. Потому что это только один экземпляр UIView & Вы можете использовать его только один раз. Или создайте новый экземпляр. –
Хорошо, так что viewForHeaderInSection работает, как повторное использование ячейки представления таблицы? Но я должен уметь использовать свой собственный подклас UIView из раскадровки? Я хочу создать его в раскадровке, а затем реализовать его как заголовок раздела. – Oskariagon