显示嵌入在tableView中的collectionView中的xib

时间:2019-09-29 01:27:50

标签: ios swift uitableview uicollectionview

我正在尝试显示来自tableViewCell的collectionViewCell的xib(因此我可以同时进行水平和垂直滚动,同时每行具有类别)。似乎xib的寄存器是问题所在,因为它无法从适当的位置正确注册? tableView无法注册它,因为它在我尝试注册时失败,我已经在collectionView中注册了它,但是它不会崩溃但没有任何显示。也许这不是最好的方法-但是什么是实现间隔水平滚动和垂直滚动的好选择?到目前为止,这是我的源代码

import UIKit

class DiscoverViewController: UIViewController {

    @IBOutlet weak var discoverTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

extension DiscoverViewController: UICollectionViewDelegate, UICollectionViewDataSource, UITableViewDelegate, UITableViewDataSource {

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 5
    }

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

        collectionView.register(UINib(nibName: "DiscoverCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "DiscoverCollectionViewCell")

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "DiscoverCollectionViewCell", for: indexPath) as! DiscoverCollectionViewCell

        cell.authorLabel.text = "this"
        cell.coverImage.image = #imageLiteral(resourceName: "discover")
        return cell
    }

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = discoverTableView.dequeueReusableCell(withIdentifier: "CategoryTableViewCell", for: indexPath) as! CategoryTableViewCell

        return cell
    }
}

1 个答案:

答案 0 :(得分:0)

解决了这个问题,必须将委托和数据源设置为TableView单元文件,并在电视上将xib注册到具有CV实例的位置。感谢@Daniel指出了正确方向的观点。