Tôi muốn hiển thị một bảng có nhiều phần và chỉ bắt đầu 3 phần tử của các phần. Khi người dùng chạm vào phần chân trang, phần chân trang bị mất (trở thành 0) và tất cả các phần tử của phần đó sẽ được hiển thị cho người dùng.Các ô hiển thị ban đầu sẽ ẩn sau khi gọi lại các phần: withRowAnimation: phương thức
Chính vì lý do này, khi người dùng chạm chân phần, tôi gọi dưới mã:
-(void)loadMoreRowsInSection:(NSInteger)section {
[groupStates replaceObjectAtIndex:section withObject:[NSNumber numberWithBool:YES]];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:section] withRowAnimation:NO];
}
Tôi có đoạn code sau để hiển thị phần chân trang hay không:
-(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;
}
Khi người dùng vòi chức năng phần footer và loadMoreRowsInSection được gọi, phần này được tải lại nhưng các hàng hiện tại của phần đó biến mất. Khi tôi cuộn xuống dưới, làm cho các hàng ra khỏi màn hình và một lần nữa, các hàng xuất hiện trở lại.
Nếu tôi gọi reloadData
thay vì reloadSections:withRowAnimation:
, không có vấn đề gì nhưng có vẻ như không nên tải lại toàn bộ bảng. Ngoài ra không có hoạt ảnh trong reloadTable.
Có ai gặp sự cố này không?
tham số thứ hai của '-reloadSections: withRowAnimation:' không phải là 'BOOL'; nó là một loại 'UITableViewRowAnimation' – user102008