Tôi đang có một UITableView với xen kẽ màu UITableViewCells. Và bảng có thể được chỉnh sửa: các hàng có thể được sắp xếp lại và xóa. Làm cách nào để cập nhật màu nền của ô xen kẽ, khi các hàng được sắp xếp lại hoặc bị xóa?Cập nhật xen kẽ màu UITableViewCells khi các hàng được sắp xếp lại hoặc bị xóa
Tôi đang sử dụng này để vẽ các tế bào màu xen kẽ:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([indexPath row] % 2) {
// even row
cell.backgroundColor = evenColor;
} else {
// odd row
cell.backgroundColor = oddColor;
}
}
Nhưng phương pháp này không được gọi khi một hàng được sắp xếp lại hoặc xóa. Và tôi không thể gọi [tableView reloadData]
từ phương pháp sau đây, bởi vì nó bị treo ứng dụng trong một vòng lặp vô hạn:
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
// Move the object in the array
id object = [[self.list objectAtIndex:[fromIndexPath row]] retain];
[self.list removeObjectAtIndex:[fromIndexPath row]];
[self.list insertObject:object atIndex:[toIndexPath row]];
[object release];
// Update the table ???
[tableView reloadData]; // Crashes the app in an infinite loop!!
}
Không ai có một con trỏ hoặc một giải pháp thực hành tốt nhất để đối phó với vấn đề sắp xếp lại các tế bào màu xen kẽ?
Cảm ơn
Cảm ơn! Điều đó làm các trick. –