2014-07-21 16 views
10

UICollectionViewFlowLayout içeren bir koleksiyon görünümüm var.Son hücrenin UICollectionView düzeni

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 

if (indexPath.row<6) { 
    CGSize retval = CGSizeMake(100, 100); 
    return retval; 
} 

CGSize retval = CGSizeMake(200, 130); 

return retval; 
} 

neye düzenleri: ilk 6 hücreleri iyi bakmak ve 7-9 doğru, ama sonuncusu hizalanmış merkezi değildir,

enter image description here enter image description here

ve farklı boyutları vardır

bunlardan herhangi biri bana açıklayabilir mi?

ve tekrar günler Koleksiyon düzenleriyle oynamıyorum, ancak akışkanlık ve özel düzen seçiminde seçiminin karışık olduğunu düşünüyorum. Bu konuda herhangi bir ilke?

Önceden birçok thx.

+1

UICollectionView her zaman satırda olduğu kadar çok öğe doldurmaya çalışır. Örneğinizde görebilirsiniz: Resim 1'de, satır başına 3 öğe için alan vardır, ancak görüntü 2'de yalnızca bir görüntü için boşluk vardır. Şimdi, son satırdaki sorun, UICollectionView öğesinin, başka bir öğenin var olup olmayacağını bilmemesidir, böylece tarafa hizalanır ve bir sonraki öğeyi bekler. Bu, autoLayout ile ilgili bir sorundur, görünümler düzen temsilcisi ile değil, otomatik olarak hizalanır. (Bu, hala açık olduğu anlaşılan birilerinin bu sorunu çözmesine yardımcı olabilir) – choli

cevap

4

Koleksiyon görünümündeki son birkaç hücreyle benzer bir sorunla karşılaştım. Benim durumumda, madde boyutlarına göre bölüm içi bilgileri onurlandırmanın bir sonucuydu.

0'a flowLayout arasında sectionInset belirlemeyi deneyin:

flowLayout.sectionInset = UIEdgeInsetsZero; 

bu akış düzeni son birkaç hücreleri üzerinde bu bozmak gibi görünüyor gibi bir minimumInterItemSpacing zorlamak gerekebilir çalışmazsa:

flowLayout.minimumInteritemSpacing = 10.f;//or any reasonable number