2013-04-04 33 views
10

Vì vậy, tôi có một số UITableViewController để khởi động một số khác tableVC thay đổi số ô cho bản gốc khi bị loại bỏ.Kích thước nội dung cuộn UITableView không chính xác sau khi loại bỏ một chế độ xem khác

Khi loại bỏ, mặc dù trả lại chiều cao ô chính xác (và chiều cao tiêu đề) cũng như số hàng được cập nhật (vì nội dung cuộn lớn), chế độ xem cuộn chỉ bị trả lại khi cuộn. Khi nhìn vào tài sản contentSize của cuộn bảng, contentSize không chính xác và giống như trước đây.

Khi tải ban đầu tableVC, tôi không gặp sự cố. Nếu tôi có một số lượng lớn ô, bảng sẽ cuộn như mong đợi. Chỉ khi sa thải tableVC được trình bày mà tôi đã gặp phải sự cố. Một điều tôi không chắc chắn là khi nào nên gọi reloadData. Tôi đang làm nó như sau:

1. trong giới tableVC:

[[self presentingViewController] dismissViewControllerAnimated:YES completion:nil] 

2. ở gốc tableVC:

-(void)viewDidAppear  
{ 
    //tablecell number manipulated 
    [table reloadData]; 

} 

Điều buồn cười là nếu tôi xoay để cảnh quan và quay lại chân dung, contentSize sau đó được đặt chính xác và tôi có thể cuộn lại.

+0

Chỉ cần đi qua điều này, là 'viewDidAppear' một lỗi đánh máy - có bạn không sao chép mã một cách chính xác? – Rich

Trả lời

3

Thêm một

[table setNeedsDisplay]; 

Ngoài ra, là có một lý do cụ thể tại sao bạn không tạo hiệu ứng động?

+0

Dường như không hoạt động. Tôi cũng đã thử setNeedsLayout cùng một dòng suy nghĩ. –

+0

Làm cách nào để thêm lại hoạt ảnh? – Mundi

+0

Nó thực sự hoạt hình trong mã thực sự của tôi, tôi vừa phạm sai lầm ở đây. Tôi cần nó hoạt hình. –

0

Tôi gặp sự cố tương tự. Tôi đã thay đổi số lượng hàng và phần của một tableView tĩnh để đáp ứng với dữ liệu được nhập vào một viewController con, nhưng trong khi nội dung đang được cập nhật, thì contentSize thì không, dẫn đến sự cố cuộn.

Trong trường hợp của tôi có vẻ như là lỗi trong reloadData trong iOS6, ngăn bảngView tính đúng cách kích thước mới (tính năng này hoạt động tốt trong iOS7). Tôi đã giải quyết vấn đề này bằng cách gọi các chèn và xóa thích hợp trên các hàng và phần, như được mô tả chi tiết tại đây: UITableView won't reload contentSize.

1

Tôi đã giải quyết vấn đề này bằng cách tải lại phần đó một cách rõ ràng và không sử dụng reloadData. [bảng reloadSections: [NSIndexSet indexSetWithIndex: 0] withRowAnimation: UITableViewRowAnimationAutomatic];

+0

cảm ơn, đây là một câu trả lời hữu ích. – DeyaEldeen

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