多达25个具有所有不同数据的collectionviewcells中的一个tableview

时间:2019-04-11 06:09:00

标签: uitableview uicollectionview swift4 uicollectionviewcell

我想在多达25个表格视图中显示不同的字节数组。但目前仅在第一个表格视图中显示。

我目前有一个UICollectionviewcontroller,带有一个菜单栏,其中最多可以选择25个collectionviewcells进入该单元格。每个单元格都显示另一个CollectionViewCell,并在其中具有一个表格视图。

我正在发送要在表格视图中显示的字节数组。

在给定时间后(如果使用计时器2秒后未接收到任何数据) OR “此会话字节数组接收到所有数据”,菜单栏中将有一个新单元格,并带有一个新的uicollectionviewcell在菜单栏下方有一个新的tableview insde。这将是字节数组的新会话。

我不知道如何使它工作。我见过很多例子,人们使用5个可重用单元格进行5次tableviews

    table1.tag = 1
    table2.tag = 2
    tablex.tag = x

    table1.dataSource = self
    table1.delegate = self
    tablex.delegate = self 
    etc....

但是在我的情况下,我不知道tableview将有多少个单元格。 有时可能是5 ..或10或25,甚至只有1。这完全取决于数据。

即使每次都是25,并且我将对25个具有不同可重用单元格的案例使用switch语句,并且在每个案例中将数据源和委托设置为self。我认为哪一个不是好的代码。

无论如何,我希望您能为我提供一个解决方案,让我更加清洁!我在编程方面也不是那么有经验。 请问是否有东西!

编辑

    class NewReceiveViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout, {

viewDidLoad:

..

    collectionView.register(ReceivedCell.self, forCellWithReuseIdentifier: "cell")

MenuBar:在2秒钟的计时器上,它向菜单栏添加了一个新单元格,现在仅使用随机颜色查看其工作情况

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath as IndexPath) as! MenuCell

    cell.backgroundColor = self.colors[indexPath.item]

    cell.tintColor = UIColor.rgb(red: 91, green: 14, blue: 13)

    return cell

菜单栏下的Collectionview:

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

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ReceivedCell
    cell.tableView.reloadData()
    cell.backgroundColor = UIColor.lightGray


    return cell

Tableview:

    extension ReceivedCell: UITableViewDelegate, UITableViewDataSource {



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

    return recievedArrays.count //array.count
}

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

    let cell: UITableViewCell = UITableViewCell(style: UITableViewCell.CellStyle.value1 , reuseIdentifier: tableViewCell)
    //...code for labels
return cell

此数据传输非常快速。首先,数据将在第一个表格视图中显示,2秒钟后,它将在下一个CollectionViewCell单元格中创建一个新的表格视图,我想在那里显示数据,然后在接下来的2秒钟中显示,依此类推!

illustration of how the app runs

0 个答案:

没有答案