2013-04-05 30 views
12

Tôi có một số UICollectionView và tôi muốn thêm hoạt ảnh vào từng ô.Lặp qua tất cả các ô trong UICollectionView

Hiện nay tôi đang sử dụng

for(UICollectionView *cell in collectionView.visibleCells){ 
    //add animation to cell here 
} 

Nhưng điều đó chỉ áp dụng cho các hình ảnh động cho các tế bào có thể nhìn thấy và ngay sau khi tôi di chuyển xuống và các tế bào không còn có thể nhìn thấy các hình ảnh động dừng.

Làm cách nào để lặp qua tất cả các ô trong UICollectionView?

+0

Tôi đang cố gắng đạt được điều gì đó tương tự. Nhưng tôi nhận được 0 mục trong các ô hiển thị. Tại điểm nào mảng này được dân cư? –

Trả lời

9

Tôi sẽ làm điều này theo một cách khác, có thể. Nếu bạn muốn các ô hoạt ảnh, bạn có thể đặt thuộc tính shouldAnimate = YES. Sau đó, trong số collectionView:cellForItemAtIndexPath: hãy kiểm tra thuộc tính đó và áp dụng hoạt ảnh nếu cần (hoặc xóa nó).

Sau khi thiết lập thuộc tính, chỉ tải lại các visibleCells: [collectionView reloadItemsAtIndexPaths:collectionView.indexPathsForVisibleItems].

Bây giờ, vì hoạt ảnh được cung cấp khi một ô được yêu cầu thông qua Giao thức nguồn dữ liệu, bạn cũng có được hoạt ảnh khi bạn cuộn.

+0

Wow thật tuyệt vời và hoạt động như một sự quyến rũ, cảm ơn rất nhiều :) – user1838169

+0

Xin chào, một câu hỏi (ngớ ngẩn). Liệu reloadItemsAtIndexPaths đi trong cùng một collectionView: cellForItemAtIndexPath: chỉ sau khi kiểm tra thuộc tính? –

+0

Không, hãy đặt nó vào bộ xử lý để nhấn nút chẳng hạn. Đặt nó trong một 'collectionView: cellForItemAtIndexPath:' sẽ đặt mã của bạn trong một vòng lặp. không được khuyến khích. – fguchelaar