2012-03-16 18 views
5

UITableView có hình động tích hợp trong đó sau khi một ô được sắp xếp lại, nó sẽ nhẹ nhàng đưa vào khoảng trống. Có nơi nào để khai thác một số loại thông báo sau khi hoạt ảnh đó kết thúc không? Tôi muốn gọi một phương pháp sau khi hoàn thành. Tại thời điểm này tôi đang sử dụng performSelector:withObject:afterDelay: hoạt động tốt vào lúc này, nhưng tôi muốn biết liệu có thể chạm vào hoạt ảnh hoàn chỉnh hay không.
Để nhắc lại, tôi không nói về hoạt ảnh tùy chỉnh, chỉ hoạt ảnh được tích hợp vào UITableView.Thông báo hoàn chỉnh hoạt ảnh sau khi UITableView được sắp xếp lại theo cách thủ công

Tôi đã tìm kiếm xung quanh và dường như không thể thu thập câu trả lời.

+0

Có thể trùng lặp: http://stackoverflow.com/questions/7198633/how-can-i-tell-when-a-uitableview-animation-has-finished – fishinear

Trả lời

0

Nếu bạn có quyền truy cập vào nguồn dữ liệu chế độ xem bảng, điều này trở nên thực sự dễ dàng. Bạn chỉ cần thiết lập một thuộc tính trên các ô xem bảng và thực hiện một phương thức trong nguồn dữ liệu. Thuộc tính bạn phải đặt là

tableViewCell.showsReorderControl = YES; 

mà bạn có thể đã đặt. Bây giờ tất cả những gì bạn phải làm là triển khai phương thức này trong nguồn dữ liệu:

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath; 

Bất cứ khi nào người dùng nhả ô sắp xếp lại, chế độ xem bảng phải báo cho nguồn dữ liệu sắp xếp lại dữ liệu thực tế. Tất cả những gì bạn phải làm là vuốt ve cái này, như vậy:

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { 
    [self doMyFavoriteThing]; 
} 

Đó là tất cả! Tất nhiên, đây không phải là hoàn toàn nói về sự kết thúc của hình ảnh động, nhưng nó đi xuống cùng một sự kiện.

4

Tôi nhận ra rằng câu hỏi này là cổ xưa, nhưng tôi vẫn tình cờ gặp nó khi tôi đang cố tìm câu trả lời cho cùng một vấn đề mà @Gobot đang gặp phải. Vâng, hóa ra là có một giải pháp SIMPLE. Giống như những gì @Mitchell Vanderhoeff đã tuyên bố, bạn cần phải chèn phương thức

- (void)tableView:(UITableView *)tableView 
     moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
     toIndexPath:(NSIndexPath *)toIndexPath { 
     [CATransaction setCompletionBlock:^{ 
      // Completion code here 
     }]; 
} 

vào bảng phân công của bạn để nhận thông báo từ bảng rằng sắp di chuyển hàng. Điều quan trọng là mặc dù setCompletionBlock CATransaction. Điều này sẽ cho phép bạn thiết lập một khối hoàn thành trên giao dịch hoạt hình ngầm mà tableview đang làm cho chuyển động hàng. Cũng giống như tên của nó, bất cứ điều gì bạn đặt trong khối đó sẽ được thực hiện sau khi hoạt ảnh đã hoàn thành.

Bạn sẽ cần phải bao gồm khung công tác QuartzCore nếu nó chưa phải là một phần của dự án của bạn.

Các vấn đề liên quan