2014-12-07 12 views
7

Hızlı inşa edilen bir ios 8 uygulamasının UI'sini tasarlıyorum. Otomatik ayar ve kısıtlamalarla ilgili orta düzeyde bilgim var. İşte durumum: Özel koleksiyon izleme denetleyicisi ve koleksiyon görünümü hücrem var. 320 x gibi intrinsik yükseklik/genişlik özelliklerini kullanmak yerine, ana görüntünün çoğaltıcısına göre bir hücrenin genişliğini ve yüksekliğini ayarlamak için arayüz oluşturucudaki "eşit genişlikleri" ve "eşit yükseklikleri" kısıtlamalarını kullanmak istiyorum. 94.Toplama görünümü hücresi için otomatik düzenleme genişliği ve yükseklik kısıtlamaları ayarlamak için en iyi yöntemler?

İşte IB dahilindeki boyut sınıfları için içsel genişliğini ve yüksekliğini kullanarak

  1. çalıştığı şey budur. (Bu çalışmıyor)
  2. Control sürükleme

("eşit yüksekliklerde" ve "eşit genişlikte" bile olmayan yapılar oldukları gibi görme işe yaramadı) CollectionView bir UICollectionViewCell sadece ben mıyım iç yükseklik ve genişlik için yerleşmek ve CollectionViewFlowLayout bana ya da bu programatik yapmak için bir yolu var olduğunu varsayalım?

Teşekkürler. ayarlamak cep boyutu için Alex

+0

kimse bu cevabını bilmek dikişleri. Koleksiyon görünümleri oluşturmak çok can sıkıcıdır ve düzenlediğiniz şeyin önizlemesini izleyemezsiniz. –

cevap

-1

Kullanım UICollectionViewDelegateFlowLayout yöntemleri görünüm genişliği

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize 
{ 
    let width = CGRectGetWidth(collectionView.bounds) 
    let hcount = 3 
    let gapcount = CGFloat(hcount) + 1 
    //this should be a class var/constant which you can feed into the minimumLineSpacingForSectionAtIndex delegate 
    let gap = 10 
    let kwidth = width - gap 
    let keywidth = kwidth/CGFloat(hcount) 

    return CGSize(width:keywidth,height:50) 
} 

genelinde 3 hücrelerini isterseniz örneğin

yapabilirsiniz melodi

ile hücreler arasındaki mesafe func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat

ve

numaralı kenarlı sayfalar

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets

0

düzeni ve hücre boyutu arasında collectionViewLayout özelliği CollectionView'ın yapılır. sınıf UICollectionViewFlowLayout bir collectionViewLayout kullanarak, madde boyutu özelliğini kullanarak sabit bir boyut ayarlayabilirsiniz:

(collectionView.collectionViewLayout as? UICollectionViewFlowLayout)?.itemSize = 100 //set fixed size here 

veya set değişken boyutu temsilci yöntemi kullanarak:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
    // determine variable size here using indexPath value 
} 
İlgili konular