#ios #hide #uitableviewsectionheader
Вопрос:
У меня есть условие, на основании которого мне нужно скрыть заголовок для моего статического табличного представления. Стиль моего tableview таков grouped
, и у каждого раздела есть заголовок в заголовке раздела.
Я устанавливаю высоту 5-й секции на CGFloat.leastNormalMagnitude
, потому что я хочу, чтобы она исчезла, но она не работает.
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -gt; CGFloat { if hideFifthRow{ if section == 4 { return CGFloat.leastNormalMagnitude } } return tableView.sectionHeaderHeight }
Может кто-нибудь, пожалуйста, помочь.
Ответ №1:
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -gt; CGFloat { if hideFifthRow{ if section == 4 { return 0.1 } } return tableView.sectionHeaderHeight }
Комментарии:
1. нет, это не работает, потому что поле заголовка заголовка не пустое.
2. Хорошо. Я предположил, что заголовок заголовка равен нулю, поэтому вы пытаетесь скрыть заголовок для этого раздела.
Ответ №2:
Итак, я выяснил причину, по которой заголовок не может скрыться. Если в поле заголовка заголовка есть что-либо, то сделать высоту раздела минимально возможной, не получится.
Итак, поверх
override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -gt; CGFloat { if hideFifthRow{ if section == 4 { return CGFloat.leastNormalMagnitude } } return tableView.sectionHeaderHeight }
Вот что мне нужно выполнить дополнительно-
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -gt; String? { if hideFifthRow{ if section == 4 { return nil } } return sectionTitles[section] }
Обратите внимание, что мне пришлось хранить заголовки заголовков в массиве и программно задавать заголовки из titleForHeaderInSection
метода делегата. Для моего скрытого пункта мне пришлось вернуть ноль, чтобы сначала избавиться от названия.