我在表视图单元格中实现了一个集合视图单元格,但集合视图indexPath发生了奇怪的事情。
numberOfItemsinSection被触发3次,然后当numberOfitemsInSection为2时,cellForItemAt只触发一次。我期望集合视图有一个部分和2个单元格。
以下是源数据:
NavigationPage
以下是以下代码的控制台输出:
[["myDomain.jpg1", "myDomain.jpg2"]]
这是我的视图控制器:
"number of items in section: 2"
"number of items in section: 2"
"number of items in section: 2"
"cell for item at [0, 0]"
"indexPath.section: 0"
"indexPath.row: 0"
"myDomain.jpg1"
这是我的表格视图单元格:
class WishListsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var tableView: UITableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
tableView.register(WishListsCell.self, forCellReuseIdentifier: cellId)
self.view.addSubview(tableView)
}
func numberOfSections(in tableView: UITableView) -> Int {
return wishLists.count // 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: cellId, for: indexPath) as! WishListsCell
return cell
}
答案 0 :(得分:0)
我没有在WishListsCell扩展程序中看到numberOfSections(in collectionView)
的实现。
根据您发布的代码段,我无法确定,但它可能看起来像。
func numberOfSections(in collectionView: UICollectionView) -> Int {
return wishListUrls.count
}
答案 1 :(得分:0)
最终,主要问题是从5个Alamofire请求中加载我的数据,因为作为API的单个请求,我还无法获得主数据和详细信息。 tableView.reloadData()似乎反复触发,直到我在第一次Alamofire完成时明确触发它。当我将细节数据伪装成本地字典时,它似乎工作得更好。
除此之外,我实现了它Swift - how to open another viewcontroller with CollectionViewCell inside UITableViewCell
唯一的变化是我有多个部分,每个部分在我的表格单元格中有一行,所以我collectionView.tag
使用indexPath.section
而不是indexPath.row
。
我还使用了https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell-in-swift/
和这个