У меня есть статическое табличное представление в моем приложении. Это табличное представление используется для предпочтений.
Раздел в табличном представлении имеет только одну ячейку, которая содержит UISwitch
. Когда этот переключатель активирован, я хочу показать раздел внизу, а когда нет, я хочу скрыть раздел внизу. Все разделы (также те, которые должны быть скрыты / показаны) настраиваются с помощью Interface Builder.
Есть ли способ скрыть или показать этот раздел, когда табличное представление статично, так как статическое табличное представление не имеет источника данных? Если это будет проще, я мог бы также согласиться использовать тот же раздел, но добавлять / скрывать строки из этого раздела, когда переключатель включен или выключен.
EDIT
Я подошел ближе, как это сделать.
Устанавливая высоту ячеек в разделе и высоту нижнего колонтитула и заголовка раздела равным 0, я могу почти скрыть раздел. У меня все еще есть некоторый промежуток между разделом выше и разделом ниже, от которого я не могу понять, как избавиться.
У кого-нибудь есть идея, откуда взялся этот дополнительный интервал? Смотрите фото ниже.
Это код, который я использую для почти скрытия раздела.
/* Will display cell */
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 2)
cell.hidden = YES;
else
cell.hidden = NO;
}
/* Height of cell */
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 2)
return 0;
return [super tableView:tableView heightForRowAtIndexPath:indexPath];
}
/* Height of section header */
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 2)
return 0;
return [super tableView:tableView heightForHeaderInSection:section];
}
/* Height of section footer */
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
if (section == 2)
return 0;
return [super tableView:tableView heightForFooterInSection:section];
}
Вот так выглядит табличное представление. Есть еще место, которое мне нужно спрятать. Дополнительный пробел находится между разделами, обозначенными «Arbejde» и «Anden».