2012-12-07 18 views
6

Tôi được phân loại là UICollectionViewLayout. Càng xa càng tốt.
Tuy nhiên, tôi có một số ô rộng hơn màn hình và đôi khi các ô này biến mất khi cuộn. Khi bạn di chuyển một số chi tiết, họ kỳ diệu xuất hiện lại nơi họ nên. Tôi có thể cho bạn thấy mã của tôi, tuy nhiên tôi nghĩ rằng không có gì sai với nó vì nó hoạt động trong 90% các trường hợp .. Tuy nhiên, các tế bào thực sự lớn (hơn hai lần kích thước màn hình) biến mất đôi khi.Số lượng lớn UICollectionViewCell biến mất với bố cục tùy chỉnh

NSMutableArray* attributes = [NSMutableArray array]; 
for (int section=0; section < [[self collectionView] numberOfSections]; section++) { 
    [attributes addObject:[self layoutAttributesForSupplementaryViewOfKind:UICollectionElementKindSectionHeader atIndexPath:[NSIndexPath indexPathForItem:0 inSection:section]]]; 
     for (int row=0; row < [[self collectionView] numberOfItemsInSection:section]; row++) { 
      NSIndexPath* indexPath = [NSIndexPath indexPathForItem:row inSection:section]; 
      [attributes addObject:[self layoutAttributesForItemAtIndexPath:indexPath]]; 
     } 
} 
return attributes; 

Tôi cũng đã những bài viết: UICollectionView's cell disappearingLarge cells in a UICollectionView getting removed while the cell is still displayed Tuy nhiên, một giải pháp không được đề cập. Ai có thể giúp tôi với điều này? Có thể nào vấn đề là ở phía Apple? Và nếu có, liệu tôi có thể làm gì để tự mình giải quyết nó?

Trả lời

5

Xin lỗi để cho bạn biết: Tôi chắc chắn đây là lỗi thực sự trong UICollectionView; Tôi đã chạy vào chính xác điều này một vài tuần trước đây. Tôi đã thực hiện một chương trình nhỏ để chứng minh lỗi và đệ trình một RADAR với Apple, nhưng chưa nghe thấy liệu họ có dự định sửa chữa nó hay không. Cách giải quyết tốt nhất mà tôi có thể nghĩ đến (Cảnh báo: Tôi chưa thực hiện giải pháp này) là để ý rằng các thuộc tính bố trí ở rất xa các cạnh của màn hình, cố ý thay đổi các giới hạn của các thuộc tính của ô. màn hình, và có thể lưu trữ bù đắp đó (số tiền mà bạn cắt ra khỏi những giới hạn thực tế) là một trường tùy chỉnh bổ sung trong layoutAttributes, do đó, ô của bạn biết vẽ nội dung của nó một cách chính xác. Mà cảm thấy giống như một hack tổng, nhưng nó phải làm việc.

+0

Bạn đã nghe lại trong thời gian can thiệp? –

0

Bạn có chắc là bạn trả về đúng đối tượng thuộc tính cho ô này khi phương thức -(NSArray*)layoutAttributesForElementsInRect:(CGRect)rect được gọi và khi rect chỉ là một phần của ô của bạn?

+0

Người dùng cũng báo cáo có vấn đề với các ô rất lớn. Xem: http://stackoverflow.com/questions/13016302/large-cells-in-a-uicollectionview-getting-removed-while-the-cell-is-still-displa?rq=1 – CitronEvanescent

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