Trên ios8 tôi đang sử dụng bộ điều khiển xem bảng dữ liệu lõi và sau khi xóa các hàng, phần chân trang của phần của tôi đột nhiên đi xuống dưới cùng của UITableView
. Khi tôi cuộn chế độ xem bảng, chế độ xem chân trang sẽ quay lại vị trí của nó. Làm thế nào có thể khắc phục điều này và tại sao điều này lại xảy ra?Vị trí xem chân trang của phần UITableView sau endUpdate
Đây là mã chỉ trong trường hợp.
- (void)controller:(NSFetchedResultsController *)controller
didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath
forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
if (!self.suspendAutomaticTrackingOfChangesInManagedObjectContext)
{
switch(type)
{
case NSFetchedResultsChangeInsert:
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
break;
case NSFetchedResultsChangeUpdate:
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeMove:
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
}
}
}
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
if (self.beganUpdates)
{
[self.tableView endUpdates];
}
}
kiểm tra bài đăng này http://stackoverflow.com/questions/5740518/uitableview-footer-stop-from- nổi trên nội dung –
Tôi đã gửi [Radar] (https://openradar.appspot.com/radar?id=6187705981468672) về vấn đề này. Tôi đề nghị tất cả các bạn làm tốt nếu bạn muốn điều này cố định. Dupes rất thuyết phục. – gurooj