#ios #uitableview
#iOS #uitableview
Вопрос:
У меня есть простой UITableView (пример проекта здесь), но заголовки разделов не соответствуют высоте, которую я устанавливаю в heightForHeaderInSection
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 40;
}
Представление таблицы выглядит следующим образом. Заголовок раздела 1 имеет правильную высоту, но не другие.
Когда я просматриваю представление с помощью приложения Reveal, кажется, что после последней ячейки в разделе есть своего рода нижний колонтитул.
Что я делаю не так?
Комментарии:
1. Проверили, вызывается ли метод делегирования?
2. да
heightForHeaderInSection
, вызывается3. @Jan Ваш стиль просмотра таблицы — групповой или обычный? я думаю, это потому, что ваш стиль — групповой.
4. Это представление сгруппированной таблицы
5. Сделайте это понятным, если вы не хотите, чтобы group еще вы должны добавить
heightForFooter
делегат иreturn 0
.
Ответ №1:
Кажется, что это работает
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0.0001f; // 0.0f does not work
}
или даже лучше, в loadView
self.tableView.sectionFooterHeight = 0.0f;
Комментарии:
1. похоже на ошибку. Есть и другие ответы на эту проблему с тем же решением.
2. 2019 и все еще проблема. 1 для
sectionFooterHeight = 0
, это, кажется, самое чистое решение.3. 2020 и все еще проблема
4. 2021 и все еще проблема. в iOS10.
Ответ №2:
Swift:
Быстрая версия утвержденного ответа:
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.leastNonzeroMagnitude
}
Комментарии:
1. объединяя этот ответ с сообщением ниже, я использую
tableView.sectionFooterHeight = CGFloat.leastNonzeroMagnitude
Ответ №3:
Угадайте в синем и изнутри с помощью приложения Reveal, попробуйте установить для нижнего колонтитула высоту 0.
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 0;
}
Согласно документам:
Особые соображения До iOS 5.0 табличные представления автоматически изменяли высоту нижних колонтитулов на 0 для разделов, где TableView:viewForFooterInSection: возвращал нулевое представление. В iOS 5.0 и более поздних версиях вы должны возвращать фактическую высоту для каждого нижнего колонтитула раздела в этом методе.
Комментарии:
1. Возврат
0
heightForFooterInSection
не работает. Я попытался также вернутьсяnil
вviewForFooterInSection
2. @Jan: Похоже, это и хак, и решение:- (