私はストーリーボードにコレクションビューを持っています。私はストーリーボードにセルの一部を、プログラムで作成したセルの一部を持っています。 sizeForItemAtIndexPath
方法で何をすればよいですか?私はどの値を返すべきですか?私のプログラムで作成されたセルでは、私は彼のサイズを返します。しかし、私はストーリーボードからのセルのためのストーリーボードからコピーサイズを望んでいません。私は意味、私が持っている:ストーリーボードとプログラムで作成されたセルのセルを混ぜる
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return self.viewModels[indexPath.item].viewSize // for programmatically created cells
}
とのViewModelクラス:
class ViewModel {
var viewSize:CGSize = CGSizeMake(50, 50)//for example
}
はまた、私はストーリーボードにsettedそれのストーリーボードとサイズから細胞を持っています。たとえば、ストーリーボードには5つの異なるセルがあり、それぞれに異なるサイズがあります。私はしなければならない?
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
私はこれをしたくない:( は、私はストーリーボードからアイテムのサイズを取得、またはこのメソッドが実装されていない場合の動作を作成することができますどのように解決策を知っていますか?(私が意味する、あなたがいない場合あなたは、その再利用IDを用いて細胞をインスタンス化して呼び出すことができます
どのように私はcellを取得する必要がありますsizeForItemAtPath? collectionView.deque ... withIdentifierでセルを取得しようとするとクラッシュする –
プロトタイプセルからNIBファイルを分離して手動で読み込むことができます。 – paulvs
私はtableView/collectionViewを操作するためのライブラリを作成します。そして、私はユーザーがそれをどのように使用するのか、不幸にも –