2017-10-07 11 views
0

2つのカスタムセルを持つUICollectionビューがあります。 UICollectionViewCellカスタムセルは、NIBを使用して構築されます。 UICollectionViewCell NIBの中には、UITableViewがあります。しかし、UITableView自体にはカスタムセルがあります。だから私の質問は:既にNIBであるUICollectionViewCell内でカスタムセルを使用してUITableを読み込む方法

UITableViewの代わりにUICollectionViewCell NIBのカスタムセルをロードするにはどうすればいいですか?ほとんどすべての場合には

import UIKit 

class HeaderFooterCollectionViewCell: UICollectionViewCell { 

    //Tableview 
    @IBOutlet weak var tableView: UITableView! 

    //Buttons 
    @IBOutlet weak var resetButton: UIButton! 
    @IBOutlet weak var periodButton: UIButton! 
    @IBOutlet weak var undoButton: UIButton! 


    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 

     // Register cell classes 
     tableView.register(UINib(nibName: "ShotInformationTableViewCell", bundle: nil), forCellReuseIdentifier: "cell") 
    } 

} 

extension HeaderFooterCollectionViewCell: UITableViewDataSource { 

    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 1 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ShotInformationTableViewCell 

     return cell 
    } 
} 

答えて

1
let cell = Bundle.main.loadNibNamed("XIB_File_Name", owner: self, options: nil)?.first as! XIB_Class_Name 

、返信@RoyためXIB_File_Name == XIB_Class_Name

+0

感謝。それはうまくいった。 –

+0

ねえ@PaulS。私は 'cellForItem'を返す間に私の答えを使用していますが、残念ながら、' let cell = UINib(nibName: "XIB_File_Name"、bundle:nil).instantiate(withOwner:nil、options:nil)[0] as! XIB_Class_Name'結果は同じですので、私の答えはどのようにあなたのために働いたのですか? – Roy

+0

これは私のコード 'let cell = Bundle.main.loadNibNamed(" ShotInformationTableViewCell "、所有者:自己、オプション:なし)ですか? ShotInformationTableViewCell'はクラッシュなしで正常に動作します。 –

関連する問題