Я хочу отобразить таблицу, которая имеет несколько разделов, и изначально отображаются только 3 элемента разделов.Когда пользователь касается нижнего колонтитула раздела, нижний колонтитул раздела теряется (становится равным нулю), и все элементы этого раздела будут показаны пользователю.
По этой причине, когда пользователь касается нижнего колонтитула раздела, я вызываю следующий код:
-(void)loadMoreRowsInSection:(NSInteger)section {
[groupStates replaceObjectAtIndex:section withObject:[NSNumber numberWithBool:YES]];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:NO];
}
У меня есть следующий код, чтобы показать нижний колонтитул раздела или нет:
-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
int count = [[(NSDictionary*)[filters objectAtIndex:section] valueForKeyPath:@"values.value"] count];
if (count>3&&![[groupStates objectAtIndex:section] boolValue]) {
LoadMoreFooter* loadMoreFooter = [[LoadMoreFooter alloc] initWithParent:self Section:section];
return [loadMoreFooter view];
}
else return nil;
}
Когда пользователь нажимает нижний колонтитул раздела и вызывается функция loadMoreRowsInSection, этот раздел перезагружается, но текущие строки этого раздела исчезают.Когда я прокручиваю вверх, заставляя строки выходить за пределы экрана, снова появляются строки.
Если я позвоню reloadData
вместо reloadSections:withRowAnimation:
, проблем не возникнет, но не представляется хорошей идеей перезагрузить всю таблицу.Плюс в reloadTable нет анимации.
Кто-нибудь сталкивался с этой проблемой?