2016-03-24 13 views
0

Film şeridinde koleksiyon görünümü var. Hikaye panosundaki ve program aracılığıyla oluşturduğum hücrelerin bir kısmında hücrelerim var. sizeForItemAtIndexPath yönteminde ne yapmalıyım? Hangi değeri iade etmeliyim? Programlı olarak oluşturulmuş hücrelerim için onun için boyut döndürüyorum. Ancak, hikaye tahtasından hücreler için film şeridinden kopya boyutunu istemiyorum.Film şeridinden ve program aracılığıyla oluşturulan hücrelerden hücreleri karıştırma

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
     return self.viewModels[indexPath.item].viewSize // for programmatically created cells 
} 

Ve ViewModel sınıfında: Yani, var Ayrıca

class ViewModel { 
    var viewSize:CGSize = CGSizeMake(50, 50)//for example 
} 

, ben film şeridindeki setted bunun storyboard ve büyüklüğüne hücreleri var. Örneğin, storyboard'da 5 farklı hücreye sahibim ve her birinin farklı boyutu var. Yapmalı mıyım ?

let viewModel = self.viewModels[indexPath.item] 
if viewModel.id == "CELL_1" { return CGSizeMake(10, 10) } 
else if viewModel.id == "CELL_2" { return CGSizeMake(20, 20) } 
//and so on 

bu ben Storyboard'dan öğenin boyutunu almak ya bu yöntem uygulanmadı zaman davranışını nasıl oluşturabileceğini çözümü biliyor musunuz :(yapmak istemiyor musunuz? (Aksi Yani eğer daha sonra toplama görünümü bunu yeniden kimliği kullanarak hücreyi örneğini ve çağırabilir

cevap

0

Storyboard'dan boyutu) alacak bu yöntemi uygulamak.

cell.setNeedsLayout() 
cell.layoutIfNeeded() 

o zaman gerçek boyutu almak için hücrenin çerçevesini erişmek

+0

Nasıl hücre almalıyım sizeForItemAtPath? Eğer collectionView.deque ile hücre almayı denersem ... oIdentifier ile –

+0

görüyorum, belki hücrelerinizi prototip hücrelerden ayrı NIB dosyalarına taşıyabilir ve manuel olarak yükleyebilirsiniz. – paulvs

+0

tableView/collectionView ile çalışmak için kitaplık oluşturuyorum. Ve nasıl kullanacağını bilmiyorum, şanssız –

İlgili konular