2012-12-07 10 views
6

サブクラスUICollectionViewLayoutです。ここまでは順調ですね。
しかし、私は画面よりも広いセルをいくつか持っていますが、時々これらはスクロール中に消えます。もう少しスクロールすると、魔法のようにどこにあるかが再現されます。私はあなたに私のコードを表示することができますが、それは事件の90%で動作するので、何も問題はないと思う..しかし、本当に大きなセル(画面サイズの2倍以上)は時々消えます。大きなUICollectionViewCellがカスタムレイアウトで消えています

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; 

私はまた、これらの記事ました:UICollectionView's cell disappearingLarge cells in a UICollectionView getting removed while the cell is still displayed はしかし、溶液が言及されていません。誰も私にこれを助けることができますか?問題はアップル側にありますか?それがあれば、私はそれを自分で解決するために何ができますか?

答えて

5

あなたに教えていただきありがとうございます。私はこれをUICollectionViewの本当のバグだと確信しています。私は数週間前にこの全く同じことに遭遇しました。私はバグを示すための小さなプログラムを作って、AppleにRADARを提出しましたが、それを修正する予定があるかどうか、またそれを修正する予定があるかどうか聞いていません。私が考えることができる最善の回避策(警告:私はまだこの回避策を実装していない)は、レイアウト属性が画面の端から遠くにあり、セル属性の境界を意図的に変更して、 layoutAttributesの追加のカスタムフィールドとしてそのオフセット(実際の境界線からはずれる量)を保存することで、セルがコンテンツを正しく描画できるようになります。グロスハックのような感じですが、うまくいくはずです。

+0

あなたは介入する時間? –

0

メソッド-(NSArray*)layoutAttributesForElementsInRect:(CGRect)rectが呼び出され、rectがセルの一部である場合に、このセルに適切な属性オブジェクトを返すことはできますか?

+0

また、非常に大きなセルで問題が発生したと報告しています。参照:http://stackoverflow.com/questions/13016302/large-cells-in-a-uicollectionview-getting-removed-while-the-cell-is-still-displa?rq=1 – CitronEvanescent

関連する問題