2015-02-15 19 views
20

UITableView'da, tamamen statik tableView yapılandırması mümkündür. UITableView'ın veri kaynağını kesebilir ve IB'yi kullanarak her bir hücreyi storyboard'a (veya xib'e) yerleştirebilirsiniz.Tamamen statik UICollectionView mümkün mü?

UICollectionView ile aynı şeyi denedim. UICollectionView'ın veri kaynağını ayırın. Her bir hücreyi film şeridinde UICollectionView'a koyun. Hata yapmadan yaptım. Ama işe yaramadı. hücreler hiç görüntülenmedi.

Veri kaynağı olmadan UICollectionView var mı? Statik UICollectionViewController oluşturma

+0

Hücrelerinizi "cellForItemAtIndexPath" içine oluşturduğunuzda, sabit bir hücre dizisine erişebilirsiniz. dequeueReusableCellWithReuseIdentifier' kullanmadan. Sadece bunun için gerçekten güçlü bir kullanım durumunuz varsa, hatalara ve performans sorunlarına yol açma olasılığı daha yüksektir. –

cevap

14

sayılı

izin verilmez. Bir veri kaynağı temsilcisine sahip olmanız gerekir.

Ayrıca statik UITableView, ancak statik bir UITableViewController olduğunu belirtmek istiyorum. Bu bir fark.

+1

Tamam. Ama temeliniz nedir? Apple belgeleri? Apple UIKit tasarımcının cevabı var mı? Ya da deneyimleriniz? – kmugitani

+0

Deneyim. Bakmadım ama IB'de UITableViewController'dan farklı olarak UICollection VC'nin size statik koleksiyon kullanma seçeneği sunmadığını görebilirsiniz. Ayrıca, koleksiyon görünümünde daha fazla hücre eklemenin yalnızca hücre biçimlerini eklediğini görebilirsiniz. – AShavit

10

Kolaylıkla bir statik UICollectionViewController oluşturabilirsiniz.

sadece arayüz oluşturucu her hücreyi oluşturmak vermek bunları yeniden kullanım tanımlayıcılar (örneğin, "Home_1" "Home_2" "Home_3"), aşağıdaki gibi yöntemler doldurmak:

class HomeViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout { 
    let cellIdentifiers:[String] = ["Home_1","Home_2","Home_3"] 
    let sizes:[CGSize] = [CGSize(width:320, height:260),CGSize(width:320, height:160),CGSize(width:320, height:100)] 

    override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return cellIdentifiers.count 
    } 
    override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
     return collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifiers[indexPath.item], for: indexPath) 
    } 
    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { 
     return sizes[indexPath.item] 
    } 
} 

sonra görünüm denetleyicisi ayarlamak uygun sınıftan ve (temelde) statik bir koleksiyona sahip olmak. Söylemek üzüldüm ama bu kontrol gruplarına sahip olduğunuzda, portre ve manzara görünümlerini desteklemenin en iyi yoludur ...