У меня есть расширяемая таблица с настраиваемыми заголовками. Когда я загружаю tableview, я устанавливаю альфа для нескольких разделов в зависимости от того, есть ли в них какие-либо элементы.
Я устанавливаю альфа обратно на 1, как только у меня есть некоторые элементы в этих разделах.
Проблема, с которой я столкнулся, заключается в том, что как только я нажимаю на любой из разделов, чтобы развернуть этот раздел, он просто сбрасывает представление для всех заголовков, которые находятся ниже выбранного, и просто удаляет альфа-канал. Для Ex Если я нажму на 1-й, все заголовки станут альфа-1, но если я нажму на 4-й, только 4-й и 5-й станут альфа-1. Например, если я нажму 1, это покажет -
Чтобы получить сворачиваемый и расширяемый вид, я использую следующий код для обновления sh раздела -
let indexSet: IndexSet = IndexSet(integer: section)
self.filterTableView.beginUpdates()
self.filterTableView.reloadSections(indexSet, with: UITableView.RowAnimation.fade)
self.filterTableView.endUpdates()
способ установки заголовка показан ниже -
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "FilterOptionHeaderView") as! FilterOptionHeaderView
let filterHeader = self.filterHeaders[section]
let selectedCount = self.selectedItems[filterHeader.key]?.count ?? 0
if selectedCount > 0 {
headerView.headerLabel.text = filterHeader.name + "(\(selectedCount))"
} else {
headerView.headerLabel.text = filterHeader.name
}
headerView.tag = kHeaderSectionTag + section
let headerTapGesture = UITapGestureRecognizer()
headerTapGesture.addTarget(self, action: #selector(sectionHeaderTapped(_:)))
headerView.addGestureRecognizer(headerTapGesture)
if self.sectionItems[section].isEmpty || self.sectionItems[section].count < 1 {
headerView.alpha = 0.5
} else {
headerView.alpha = 1
}
return headerView
}
Я также пробовал установить альфа-канал в didEndDisplayingHeaderView
, но все еще не работает. Пожалуйста, дайте мне знать, как этого добиться. Я знаю, что все заголовки сбрасываются, потому что стрелка развернутого направления также возвращается в исходное состояние, хотя у меня есть анимация вращения, которая появляется, а затем сбрасывается.