2017-07-31 16 views
0

私はcollectionView内の各インデックスアイテムに対して異なるセルを作成しようとしていますが、変数にアクセスするためにそれぞれのセルとしてダウンキャストしようとしています。 以下のコードは、このエラー「が型の値を割り当てることができません 『LiveCell.Type』とタイプする 『UICollectionViewCell』」を出力SwiftのカスタムセルUICollectionView

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let identifier: String 
    let cellName: UICollectionViewCell 

    if indexPath.item == 1 { 
     identifier = LiveCellId 
     cellName = LiveCell 
    } else if indexPath.item == 2 { 
     identifier = LiveCellId 
     cellName = LiveCell 
    } else { 
     identifier = FeedCellId 
     cellName = FeedCell 
    } 

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as! cellName //Trying to downcast cell from the variable called cellName 
    cell.homeController = self 

    return cell 
} 

このためのソリューションがあります。事前のおかげで

答えて

0

あなたはこのような何かを行うことができます:それはしかし、それは「無関係なタイプに 『FeedCell.Type』からキャストを私に与えますよう

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let identifier: String 


    if indexPath.item == 1 || indexPath.item == 2 { 
     identifier = LiveCellId 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as! LiveCell 
     cell.homeController = self 
     return cell 

    } else { 

     identifier = FeedCellId 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as! FeedCell 
     cell.homeController = self 
     return cell 
    } 


} 
+0

素晴らしいです。ありがとう –

0

これをお試しください: -

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
    let identifier: String 
    let cellName: UICollectionViewCell? 

    if indexPath.item == 1 { 
     identifier = LiveCellId 
     cellName = LiveCell as? UICollectionViewCell 
    } else if indexPath.item == 2 { 
     identifier = LiveCellId 
     cellName = LiveCell as? UICollectionViewCell 
    } else { 
     identifier = FeedCellId 
     cellName = FeedCell as? UICollectionViewCell 
    } 

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: identifier, for: indexPath) as! cellName //Trying to downcast cell from the variable called cellName 
    cell.homeController = self 

    return cell 
} 
+0

が見えました'UICollectionViewCell'は常に失敗します " –

関連する問題