2010-11-04 23 views
5

Khi tôi kiểm tra bảng chỉ mục có thể nhìn thấy của bảng bằng 'indexPathsForVisibleRows' trong thời gian UIScrollViewDelegate's scrollViewDidScroll and scrollViewDidEndDragging, có vẻ như chính xác.indexPathsForVisibleRows của UITableView không chính xác?

Nhưng đôi khi chỉ khi cuộn và kéo kết thúc và 'cellForRowAtIndexPath' được gọi, cuộc gọi đến 'indexPathsForVisibleRows' trả về 0. Có hàng hiển thị trên màn hình để tôi biết nó không thể bằng 0. Ngay sau này xảy ra, tôi có thể gọi UITableView::visibleCells và nhận giá trị khác 0.

Tại sao sự khác biệt này tồn tại?

+1

Tôi không thể tạo lại hành vi bạn đang thấy. Khi nào bạn gọi '-indexPathsForVisibleRows'? –

Trả lời

6

Bạn có cố gắng kêu gọi các phương pháp theo thứ tự dưới đây:

[MyTable visibleCells]; 
[MyTable indexPathsForVisibleRows]; 

Có một lỗi trong iOS với indexPathsForVisibleRows. Sử dụng mã hai dòng ở trên để có các hàng hiển thị chính xác.

+0

cảm ơn ... điều này dường như được sửa trong iOS 5 – Remover

+0

tuyệt vời cho [MyTable visibleCells]. Làm việc cho iOS 8 quá. – neobie

+0

Nó cũng hoạt động trên iOS 11.2.5 – Raniys

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