Привет, сейчас у меня есть UICollectionView в UITableViewCell. UICollectionView действует как место для размещения тегов для каждой отдельной ячейки. В настоящее время он отображается нормально, когда я не ищу / ...

1
Brady852 7 Янв 2021 в 06:39

1 ответ

Лучший ответ

Вы можете просто сделать так, как показано ниже:

В mainViewController:

 var items: [ItemsModel] = []
 var filteredItems: [ItemsModel] = []
 var searching = false
 var delegate: controlsReloadingCollectionView?

 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "TableViewCell", for: indexPath) as! TableViewCell
    var tags = ""
    if searching {
        cell.nameLabel.text = filteredItems[indexPath.row].name
        cell.infoLabel.text = "## mi  \u{2022}  \(filteredItems[indexPath.row].Age ?? "") age  \u{2022}  \(filteredItems[indexPath.row].StartTime ?? "") "
        
        tags = filteredItems[indexPath.row].Tags!
        cell.tagsModelLabel.text = tags
        cell.tagsCollectionViewArray = yourDataSourceArray //Array which you want to display in collectionView
         
    } else {
        cell.nameLabel.text = items[indexPath.row].name
        cell.infoLabel.text = "## mi  \u{2022}  \(Items[indexPath.row].Age ?? "") age  \u{2022}  \(Items[indexPath.row].StartTime ?? "") "
        tags = items[indexPath.row].Tags!
        cell.tagsModelLabel.text = tags
        cell.tagsCollectionViewArray = yourDataSourceArray //Array which you want to display in collectionView                   
    }
    
    cell.yourCollectionView.reloadData() //Reload your collectionView
    return cell
}

После вызова вашего API (если вы используете) просто перезагрузите tableView в успешном результате API с

yourTable.reloadData ()

Это работает как шарм.

1
Virani Vivek 7 Янв 2021 в 06:03