2016-03-30 30 views
0

UICollectionView'umu storyboard'da başlattım ve programa göre birkaç özellik belirlemeye karar verdim; Ancak, bu yeni öznitelik ataması yalnızca self.collectionView.reloadData()'u aradığımda etkili olur.collectionViewLayout Başlatılıyor

let layout = self.collectionView!.collectionViewLayout as! UICollectionViewFlowLayout 
layout.minimumInteritemSpacing = 0; 
layout.minimumLineSpacing = 0; 

film şeridi şu anda sıfır olarak ayarlanmış henüz ben onları programlı atanmış olduğunda sıfır olmayan bir minimumInteritemSpacing yükler etti hem. Yukarıda bahsedilen üç satırlık kodu viewDidLoad() işlevime yerleştirmeyi denedim, ancak ilk yükte etkili olmadılar. Yine

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { 
    return 0 
} 
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { 
    return 0 
} 

hiçbir şans ve ben self.collectionView.reloadData() aramadan önce ilk yüklemede 0 hem zorlamak için deneyebilirsiniz başka ne emin değilim:

Ben de bu denedim. ayarlardan

Storyboard ekran görüntüsü: enter image description here

+0

Film şeridi ve simülatörünüzün ekran görüntüsünü kaydeder misiniz? –

+0

Film şeridinin ekran görüntüsü eklendi. Başlatmada ne olduğunu açıkladığım gibi basit bir şekilde simülatörde görünecek bir şey yok: İlk önce öğeler arasında boşluk beliriyor ve sonra ben kodun üç satırından beri 'self.collectionView.reloadData()' yi tetikledikten sonra gidiyorum. aralığın 0 olarak ayarlanması amaçlanan şekilde yürütülür. – theflarenet

+0

'self.collectionView.reloadData()' işlevini nerede tetikliyorsunuz? –

cevap

0

Bu benim için kesmek gibi sesler ve şu anda bu işe yaramayabilir bu yüzden test, ama bu deneyemezsin: viewDidLoad yılında

:

let button = UIButton(type: UIButtonType.System) as! UIButton 
button.frame = CGRectMake(100, 100, -100, -100) 
button.setTitle("Test Button", forState: UIControlState.Normal) 
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside) 

buttonObj.sendActionsForControlEvents(.TouchUpInside) 

O zaman bu işlevi:

func buttonAction(sender:UIButton!) 
{ 
    self.collectionView.reloadData() 
} 

Bu, çerçevenin dışında bir düğme oluşturacaktır (böylece kullanıcı bunu görmez). Daha sonra viewDidLoad son satırına basılır ve buttonAction işlevi çağrılır.

+0

Bu, iOS geliştirmede yeni olduğum için, kodun ilk satırındaki son satır nedeniyle tamamen Swift kodunun olduğunu düşünmüyorum. Üzgünüm, ama bunu söylemeyi unuttum. Düğme aslında 'refreshUI()' de bulunan bir 'calculateResults()' fonksiyonunu çağırır. Bu yüzden uygulama yükü ile ilk olarak 'CalculateResults()' aynı zamanda UIViewCollection'ı hesaplamak ve render etmek için de denir. Düğme tıklaması. – theflarenet