如何在swift 4中的tableView Cell中创建collectionview?

时间:2018-04-20 08:54:54

标签: ios swift uitableview uicollectionview swift4

image with comment[![image with out comment] 2我使用了一个tableView。在tableViewCell内,我想填充collectionView。 我有一个静态数组

这是我的代码

var menuImage = ["download.jpeg","download (1).jpeg","download (2).jpeg","download (3).jpeg","download (4).jpeg","download (3).jpeg","download (4).jpeg","download (3).jpeg","download (4).jpeg"]


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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:HomeTableViewCell = tableView.dequeueReusableCell(withIdentifier: "HomeTableViewCell", for: indexPath) as! HomeTableViewCell
        // cell.collectionView.reloadData()
        return cell
    }

tableViewCell内 - >

class HomeTableViewCell: UITableViewCell {
    @IBOutlet weak var collectionView: UICollectionView!
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
}

,这是collectionView

extension HomeVC: UICollectionViewDelegate, UICollectionViewDataSource {
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return menuImage.count
    }

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


    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "HomeCollectionViewCell", for: indexPath) as! HomeCollectionViewCell
        cell.imgvw.image = UIImage(named: menuImage[indexPath.row])
        cell.profileName.text = menus[indexPath.row]
        return cell
    }

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        print("Collection view at row \(collectionView.tag) selected index path \(indexPath)")
    }
}

静态数据仍未显示。请帮忙

2 个答案:

答案 0 :(得分:1)

我建议您按照此视频Collection View inside TableView cell

中提到的步骤操作

此外,您还可以参考此链接: Collectionview in tableview cell

希望这有帮助。

添加图片中的问题

正如您所说,您已将图像直接添加到Xcode,即拖放,

交叉检查是否勾选了目标会员发货。如果不是,请勾选。

此外,建议将图像命名为 image1,image2,image3,image4等,以便检测到它没有任何问题。

enter image description here

编辑链接到添加的演示项目

您可以在tableView单元格中找到Collection View的演示:Demo of imageCollectionView inside TableViewCell

答案 1 :(得分:1)

如果您要显示用户名以下的所有图片,则需要更改Layout。它在布局中是不可能的。

所以我的建议是:您只显示HomeVC中的用户详细信息,一旦点击任何行,移至新屏幕并显示用户详细信息以及{{1}等所有图片}。

编辑您的演示:https://www.dropbox.com/s/v05k2udqa3pu1dd/Demp1.zip?dl=0