#iphone #objective-c #uitableview
#iPhone #objective-c #uitableview
Вопрос:
У меня есть tableview с видом заголовка 3 разделов / 3 пользовательских раздела…
После того, как я удалю строку в одном из этого раздела, и если раздел окажется пустым, как я могу удалить вид заголовка раздела.
Спасибо
Ответ №1:
Одним из подходов могло бы быть сохранение флагов относительно того, стал ли раздел пустым, и возврат нулевой высоты для верхнего и нижнего колонтитулов этого раздела, а затем выполнение reloadSections:withRowAnimation:
при удалении единственной строки в разделе.
Это, безусловно, лучше, когда у вас есть настройки для конкретного раздела, с которыми было бы сложно справиться, если бы мы удалили раздел из нашей модели. Если настроек как таковых нет, вы могли бы заняться поддержанием массива массивов. Как только массив строк будет очищен, вы можете удалить раздел из массива sections. Это отразится на reloadData
.
В любом случае вам нужно будет повлиять на модель, чтобы изменить вид.
Ответ №2:
что вы можете сделать после удаления строки, так это вызвать метод -(void)reloadData
. Если вы уже делаете это, вам нужно обновить свой источник данных, чтобы указать, что строка была удалена, и в - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
вам нужно это проверить. Дайте мне знать, если это поможет!
Комментарии:
1. Что вы использовали в конечном итоге?
Ответ №3:
Один из способов, которым я справился с этой проблемой, — это реализовать заголовок раздела следующим образом:
-(NSString*) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return ([[allData objectForKey:[keys objectAtIndex:section]] count] > 0) ? [keys objectAtIndex:section]:@"";
}
Это просто проверяет, что массив объектов для этого раздела действительно что-то содержит, если это так, он возвращает название раздела, если нет, он возвращает пустую строку, которая скрывает заголовок заголовка.
Представление таблицы действительно необходимо обновить, чтобы изменения вступили в силу, также я был словарем, полным массивов, и массивом, полным ключей словаря. но что-то подобное можно было бы легко реализовать. Этот метод позволяет вставлять обратно в этот раздел без необходимости повторного создания экземпляра массива.
Надеюсь, это поможет.