gpt4 book ai didi

ios - UICollectionView didSelectItem 返回错误的索引路径

转载 作者:行者123 更新时间:2023-11-28 14:05:00 27 4
gpt4 key购买 nike

我在我的应用中使用 UICollectionView 让用户在几个城市和这些城市的餐馆之间进行选择。

首先,我将载入其中有餐馆的城市。

cities = RestaurantsLoader.cities()

然后我将用它们填充 UICollectionView

extension RestaurantPickerViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 40, height: 40)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 1
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 1
}
}

然后显示它们(使用 UILabel 因为我还没有创建自定义单元格)

extension RestaurantPickerViewController: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return cities[section].restaurants.count
}

func numberOfSections(in collectionView: UICollectionView) -> Int {
return cities.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "normalCell", for: indexPath)
cell.viewWithTag(123)?.removeFromSuperview()

let label = UILabel(frame: cell.bounds)
label.text = cities[indexPath.section].restaurants[indexPath.item].name
label.textAlignment = .center
label.tag = 123
cell.addSubview(label)

return cell
}
}

现在,我实现了 UICollectionViewdidSelectItem 函数。

extension RestaurantPickerViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print(indexPath)
}
}

但是,这个 indexPath 几乎总是关闭的。当我按下位于 section: 1, item: 25 的单元格时,它会打印 section: 2, item: 0 例如。我觉得这真的很奇怪,以前从未真正遇到过这样的事情。我究竟做错了什么?或者我该如何解决这个问题?

最佳答案

你必须使用“indexPath.item”

关于ios - UICollectionView didSelectItem 返回错误的索引路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53090149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com