У меня есть UITableView, где в некоторых случаях определенные разделы имеют нулевые строки. Моя цель состоит в том, что, когда это правда, я не хочу потерять пространство в представлении таблицы, это должно выглядеть так, как будто нет данных.UITableView Не уважаемая высотаForHeaderInSection/heightForFooterInSection?
Проблема, с которой я столкнулся, - это заголовок и нижний колонтитул для разделов, которые отображаются, даже если нет строки и, несмотря на то, что я переопределяю метод делегата, чтобы вернуть 0.0f.
Вот как это выглядит: вы можете увидеть ~ 20p серого пространства наверху, верхние и нижние колонтитулы около 10p для секции с 0 строками.
alt text http://www.hanchorllc.com/table_cells.png
Вот мой псевдо-код:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if ([section hasRow]) {
return 10.0f;
} else {
return 0.0f;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
if ([section hasRow]) {
return 10.0f;
} else {
return 0.0f;
}
}
Я проверил, что эти методы называют и что надлежащее исполнение путь проходит.
Один морщин - этот контроллер вида использует XIB и что UITableView имеет значения заголовка и нижнего колонтитула раздела, установленные в 10.0 (по умолчанию), хотя я думал, что это было переопределено методом делегата, если оно реализовано.
Это приложение, ориентированное на 3.0.
Что я делаю неправильно?
Да, это звучит разумно. У меня появилась привычка объявлять константы перечисления для макетов разделов таблицы, и я пытался заставить этот конкретный контроллер использовать этот дизайн, который не очень хорошо работает с неизвестным количеством строк в разделах. Нечетно, что документация Apple не указывает нигде (что я могу найти), что она не будет принимать значение 0.0 в качестве значения, тем более, что вы * можете * установить 0.0 в XIB (и да, это выглядит действительно странно). Я могу записать ошибку doco, поскольку по крайней мере следует отметить, что значение должно быть больше 0.0f. Cheers. – Hunter
Это действительно выглядит странно - я также не видел его ни в одной из документации, поэтому, вероятно, стоит записать это как ошибку. – h4xxr
Это хорошая идея, но у меня были проблемы с ее внедрением. У меня есть инструкции switch для раздела в связке моих методов tableview. Возвращение переменной количества разделов в зависимости от содержимого данных действительно испортит это сопоставление, и я не могу придумать элегантный (или даже простой) способ справиться с этим. – blindjesse