多个自定义TableviewCell上的多个自定义UICollectionView
我想要的是:
在多个TableviewCell上的多个自定义UICollectionView。

这些因节而异。
我遵循了此教程:https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell-in-swift/
但我不知道为什么会发生问题,
错误显示
由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“无法使种类的视图出列:具有标识符ProductCell的UICollectionElementKindCell-必须为该标识符注册一个笔尖或一个类,或者在情节提要中连接原型单元格”
我从cellForRowAt注册了Nib File,
当然我也在Nib文件上添加了标识符。
从TableView的方法,像这样
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
switch indexPath.section{
case 0:
let cell = tableView.dequeueReusableCell(withIdentifier: product, for: indexPath) as! ProductTableViewCell
cell.collectionView.register(UINib(nibName: "ProductCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "ProductCell")
cell.collectionView.viewWithTag(0)
return cell
case 1:
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! ShowDataTableViewCell
cell.collectionView.register(UINib(nibName: "ShowDataCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "CollectionCell")
cell.collectionView.viewWithTag(1)
return cell
default:
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! ShowDataTableViewCell
cell.collectionView.register(UINib(nibName: "ShowDataCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "CollectionCell")
cell.collectionView.viewWithTag(99)
return cell
}
}
这不起作用,而且我尝试从TableViewCell注册nib文件,
但是它也不起作用。
或问题是从numberOfItemsInSection方法发生的?
extension TableChildFoodViewController : UICollectionViewDelegate, UICollectionViewDataSource{
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int{
return 10
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell{
print("tag: \(collectionView.tag)")
switch collectionView.tag{
case 0:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ProductCell", for: indexPath) as! ProductCollectionViewCell
return cell
case 1:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionCell", for: indexPath) as! ShowDataCollectionViewCell
return cell
default:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionCell", for: indexPath) as! ShowDataCollectionViewCell
return cell
}
}
}
如果可以,请给我建议吗?
TableChildFoodViewController.swift
最佳答案
解决了,
我应该有这种方法
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
不是,cell.collectionView.viewWithTag(0)
我修复了cell.collectionView.tag = indexPath.section
多数民众赞成在工作!
关于ios - 部分之间的多个Custom TableviewCell上的多个Custom UICollectionView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40237565/