Hücreleri bir daireye yerleştiren alt sınıfım var. düzeni, shouldInvalidateLayoutForBoundsChange:
numaralı çağrı için YES
değerini döndürür. rotasyon ise, ilk pozisyonda hücre söner, son pozisyonunda hücre içinde kaybolur.UICollectionView/UICollectionViewLayout döndürme veya sınır değişikliklerinde çapraz boşlukları devre dışı bırakmanın en iyi yolu nedir?
Ben soldurmaları devre dışı olabilir ve öğeleri daire basitçe görünüyor benim düzeni için aşağıdaki kodu ekleyerek oryantasyon değişikliği ile döndürmek:
dokümantasyon değil çünkü yöntemleri sınırları değişikliği denilen olsun Neden- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
return nil;
}
- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
return [self layoutAttributesForItemAtIndexPath:itemIndexPath];
}
yaptıkları önermek görünüyor? Dokümantasyon, koleksiyon görünümünden öğelerin eklenmesi ve kaldırılması için ilgili ile arandığını belirtir.
Dönüş sırasında çapraz solmayı devre dışı bırakmanın daha iyi bir yolu var mı?
Notlar:
initialLayoutAttributesForAppearingItemAtIndexPath:
dokümantasyon varsayılan olarak yöntemnil
döndürür amasuper
olmayan nil değerlerini iade çağrılarını devletler.- Ben UICollectionView yöntemlerine
deleteItemsAtIndexPaths:
,moveItemAtIndexPath:toIndexPath:
veinsertItemsAtIndexPaths:
üzerinde sembolik sonları noktalarını ayarlayabilir ve bunların hiçbiri dönüşü sırasında vuruluyor.
Bu yalnızca karanlıkta bir çekimdir, ancak döndürme animasyonunun devre dışı bırakılması için, çekirdek animasyonunu tamamen döndürme işlemi için kapatabilirsiniz: [CATransaction begin]; [CATransaction kümesiValue: (id) kCFBoolFolse forKey: kCATransactionDisableActions]; // rotasyonunuzu yapın [CATransaction commit]; – maz
Belki, bir sınır üzerinde dahili olarak öğeleri kaldırılır ve eklenir ve sonuç olarak, yöntemler denir. Neden -deleteItemsAtIndexPaths: ve -insertItemsAtIndexPaths: neden çağrılmaya gelince .. burada hiçbir ipucu. Belki UIKit programcısı aleti uygulamak ve silmek için API'yi aldattı ve önledi? Eşi görülmemiş değil. – maz
Görüntünün arka katmanındaki örtük animasyonları burada açıkladığım gibi kullanarak devre dışı bırakabilir misiniz: http://stackoverflow.com/questions/2244147/disabling-implicit-animations-in-calayer-setneedsdisplayinrect/2244734#2244734? –