2011-06-21 24 views
9

Tôi có vấn đề sử dụng này UITableView method:Lỗi trong UITableView (xóaPhần: withRowAnimation:)?

- (void)deleteSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation 

Đầu tiên các tài liệu nói:

hoạt hình: YES để animate xóa các bộ phận, nếu không NO.

Nhưng hoạt ảnh tham số thực sự thuộc loại enum UITableViewRowAnimation, không phải BOOL!?

Vậy làm cách nào để tắt hoạt ảnh? Tôi đã thử NOUITableViewRowAnimationNone. Không có gì hiệu quả. Xóa phần luôn hoạt ảnh.

Tôi biết rằng tôi có thể sử dụng [tableView reloadData] để thay thế. Điều đó sẽ giải quyết vấn đề của tôi. Tôi chỉ tò mò nếu đó là một vấn đề được biết đến và nếu nó có thể vô hiệu hóa hoạt hình với phương pháp tableview này.

Cảm ơn!

+0

Bạn có tìm ra giải pháp? –

Trả lời

4

Giới thiệu về YES/NO trong tài liệu trong khi tham số thuộc loại UITableViewRowAnimation, tôi đoán đây là phần còn lại từ phiên bản cũ của API nơi tham số là BOOL trước đó. Dù sao, tài liệu thực sự là sai.

Đừng ngần ngại gửi một phản hồi cho Apple cho điều này (bằng cách sử dụng "Đó là tốt, nhưng ..." liên kết ở dưới cùng của doc)

2

Vâng, rõ ràng tài liệu thực sự là lỗi. Thông số bạn vượt qua cho biết cách bạn tạo hoạt ảnh cho việc xóa. Nếu bạn vượt qua UITableViewRowAnimationNone, cập nhật sẽ diễn ra tức thì mà không có hoạt ảnh. Tuy nhiên, khi bạn có một phần bên dưới phần bạn xóa, nó sẽ di chuyển lên trên theo cách động.

Bạn nên cố gắng tận dụng hoạt ảnh. Bằng cách này, người dùng có thể thấy điều gì xảy ra.

1

Tôi tin rằng bạn cần phải nhúng các deleteSections gọi bên trong một khối beginUpdates :

[tableView beginUpdates]; 
[tableView deleteSections:... withRowAnimation:... ]; 
[tableView endUpdates]; 

documentation dường như vẫn nói điều này. Tuy nhiên, tôi chưa thử nghiệm điều này với UITableRowViewAnimationNone.

43

Đó là loại một hack nhưng điều này được thoát khỏi những hình ảnh động chèn:

[UIView setAnimationsEnabled:NO]; 
[self.tableView insertRowsAtIndexPaths:insertedIndexPaths withRowAnimation:UITableViewRowAnimationNone]; 
[UIView setAnimationsEnabled:YES]; 
+0

wow !!! thats làm việc cho tôi ... cảm ơn –

+0

@samvermette cảm ơn bạn! cảm ơn bạn! sau một giờ bị thất vọng, đây là câu trả lời tôi cần. –

+0

Cảm ơn người đàn ông, câu trả lời rất hay! – Eugene

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