iOS 5 cuối cùng đã thêm phương thức moveRowAtIndexPath:toIndexPath:
vào UITableView
. Vấn đề là, gọi nó chỉ di chuyển hàng, nó không cập nhật/vẽ lại nó. Cách duy nhất để làm như vậy có vẻ là bằng cách tìm ô và gọi setNeedsDisplay trực tiếp. Nhưng điều này là khó khăn vì bạn không bao giờ biết liệu các tế bào đã được di chuyển hay không.moveRowAtIndexPath không làm mới nội dung của ô
Tôi không thể gọi số reloadRowsAtIndexPaths:
, vì tôi không được phép áp dụng 2 hình động cho một hàng trong cùng một khối beginUpdates-endUpdates
.
Có thể có các cách giải quyết khác nhau mà tôi có thể nghĩ đến, như tách toàn bộ nội dung thành 2 khối hoạt ảnh. Nhưng tôi tự hỏi liệu tôi có thiếu cái gì đó không, vì toàn bộ hành vi có vẻ lạ lùng với tôi.
Không chắc chắn, nhưng hãy thử và xem 'beginUpdates' và 'endUpdates'. Bạn có thể theo dõi indexPath đang được di chuyển và thực hiện thay đổi thích hợp cho ô trong 'endUpdates' nếu nó đã được di chuyển. – runmad
Gọi bất kỳ chức năng hoạt ảnh hàng mới sau khi endUpdates hủy bỏ các hình ảnh động đang chờ xử lý cho ô đó. Nói cách khác, các tế bào không được vẽ lại nhưng hoạt hình di chuyển không diễn ra nữa. Gọi 'setNeedsDisplay' có hiệu ứng tương tự. – samvermette
Đã gửi báo cáo lỗi cho nó: http://openradar.appspot.com/10457435 – samvermette