2013-03-09 38 views
11

Tôi đang sử dụng collectionView trong ứng dụng iPad của mình. Tôi đã sử dụng lớp bố cục tùy chỉnh được thừa kế lớp UICollectionViewFlowLayout.Ô UICollectionView biến mất

Tôi đang sử dụng hướng cuộn ngang. Vấn đề là, bất cứ khi nào chúng tôi sử dụng cuộn để xem bộ sưu tập, một số lần ô sẽ biến mất. Tôi đã sửa lỗi mã và thấy rằng trong phương thức nguồn dữ liệu sau khi tạo ô, thuộc tính ẩn của nó sẽ tự động BẬT.

tôi đã cố gắng sử dụng dưới đường nhưng nó không làm việc

cell.hidden = NO 

tôi có dưới đây phương pháp cũng để làm mất hiệu lực bố trí về biến đổi ràng buộc.

- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds { 
      return YES; 
     } 

Nhưng tôi vẫn đang gặp sự cố. Bất kỳ giải pháp về điều này?

Xin cảm ơn trước.

+0

vấn đề tương tự cũng xảy ra với tôi, bạn có tìm ra giải pháp không? – anoop4real

+0

Tôi đã cố gắng khắc phục sự cố của mình http://stackoverflow.com/questions/38913664/uicollectionviewcell-gets-hidden-randomly/38931405#38931405 – anoop4real

Trả lời

1

Đã xảy ra sự cố đã biết có thể khiến các ô là disappear trong UICollectionView. Nếu bản sửa lỗi của họ không hiệu quả với bạn, hãy thử PSTCollectionView, là sự thay thế nguồn mở cho UICollectionView. Nếu PSTCollectionView hoạt động, bạn nên gửi một vé radar tới Apple.

+0

bạn muốn nói đây là lỗi UICollectionView? – Swapnil

+2

Gần đây tôi gặp phải một số lỗi với UICollectionView. Tôi khá chắc chắn rằng UICollectionView không phải là lỗi. Cách tốt nhất để kiểm tra là sử dụng PSTCollectionView. Vì nó là mã nguồn mở, bạn có thể dễ dàng theo dõi mã của mình. –

+0

Ya. Tôi cũng cảm thấy nó không có lỗi. Tôi sẽ kiểm tra với PSTCollectionView. Cảm ơn... – Swapnil

0

Trong dự án của tôi, UICollectionViewCell cũng biến mất, flowLayout tôi sử dụng là bố cục tùy chỉnh có tên UICollectionViewLeftAlignedLayout. Hướng cuộn của nó là ngang. Tôi gỡ lỗi dự án một lần nữa và một lần nữa, đã thử mọi giải pháp tôi có thể tìm thấy thông qua google.com. Tất cả những điều đó không hiệu quả với tôi.

Cuối cùng, tôi xóa UICollectionViewLeftAlignedLayout và sử dụng có nguồn gốc UICollectionViewFlowLayout qua:

UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; 
[layout setScrollDirection:UICollectionViewScrollDirectionHorizontal]; 

layout.scrollDirection    = UICollectionViewScrollDirectionHorizontal; 
_collectionView.collectionViewLayout = layout; 
_CollectionView.autoresizingMask  = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; 

Và tôi thiết lập khoảng cách tế bào thông qua kịch bản (còn bạn có thể đặt chúng thông qua propery của layout):

spacing

Sau đó, tôi chạy lại dự án, UICollectionViewCell KHÔNG DISAPPEAR nữa. Hy vọng trường hợp của tôi có thể giúp bạn.