Một số trợ giúp sẽ được đánh giá cao ở đây!Vấn đề làm mới tế bào UITableView về sắp xếp lại
Tôi có ô UITableView tùy chỉnh, bao gồm hình ảnh (xanh lục, cam hoặc đỏ) và hai nhãn ở các kích thước phông chữ khác nhau. UITableView được điều khiển bởi một NSMutableArray của các đối tượng.
UITableView được chia thành ba phần, với phần đầu tiên chứa tất cả các ô có hình ảnh màu đỏ, phần thứ hai có phần màu cam, thứ ba có màu xanh lục.
Tôi đã triển khai khả năng sắp xếp lại các ô trong UITableView, cho phép người dùng kéo, nói, một mục có hình ảnh màu đỏ từ phần màu đỏ vào phần màu da cam. Thao tác kéo này hoạt động tốt và dữ liệu cơ bản được cập nhật chính xác. Tôi biết đây là trường hợp bởi vì nếu tôi chọn các tế bào, tôi đi đến xem chi tiết của nó và dữ liệu được cập nhật.
Tuy nhiên, UITableView không cập nhật cho đến khi tôi đi đến chi tiết (hoặc thoát khỏi ứng dụng) và quay lại! Nó cũng cập nhật nếu tôi di chuyển ô vi phạm ra khỏi chế độ xem và quay lại chế độ xem một lần nữa, do đó mảng rõ ràng chứa dữ liệu chính xác. Tôi chỉ không thể kích hoạt chế độ xem làm mới!
Tôi đã thử những điều sau đây sau khi mã của tôi để thay đổi dữ liệu cơ bản trong moveRowAtIndexPath:
[self.tableView reloadData];
Tuy nhiên điều này gây ra một ngoại lệ. Tài liệu tham khảo ngôn ngữ của Apple trong thực tế nói rằng reloadData không thể được gọi khi chèn, xóa hoặc hoạt hình, đó là tất nhiên những gì tôi đang làm. Ngoài ra, chỉ cố gắng làm mới ô bằng
[self setNeedsDisplay];
không hoạt động (mặc dù nó không bị hỏng).
Bất kỳ ý tưởng nào về cách tôi có thể làm mới UITableView? Tôi không thể tìm thấy một phương thức afterMoveHasBeenCompleted: hoặc bất cứ thứ gì, vì vậy nếu tôi không thể gọi reloadData trong phương thức moveRowAtIndexPath: thì tôi gọi nó ở đâu?
Hoặc đây chỉ là một hack bẩn? Có phương pháp "animationComplete" tôi có thể sử dụng thay thế không? ... – h4xxr
Điều đó có vẻ là cách tốt nhất để làm điều đó, theo bài đăng của gpmoore về chuỗi nhà phát triển Apple này: http://discussions.apple.com/thread.jspa ? messageID = 8450874 – Tim
Đó là bực bội nhưng rất yên tâm! Cảm ơn! – h4xxr