gpt4 book ai didi

ios - 选择单元格时如何自动滚动collectionviewcell到最近的单元格(上一个或下一个)

转载 作者:行者123 更新时间:2023-12-02 02:58:43 24 4
gpt4 key购买 nike

我目前正在开发一个 swift 应用程序。在一个 View Controller 中,我有一个带有水平滚动的 collectionViewcollectionView 看起来像带有更多选项卡的水平选项卡。所以有些collectionViewCell's在初始时是不可见的。

我需要的是,当我选择collectionViewCell时,我想将collectionView自动滚动到下一个单元格(如果collectionView在右侧有一个不可见的单元格)或上一个单元格(如果它在左侧有一个不可见的单元格) 。我使用的是 cocoa pod (SwipeMenuViewController),但它在演示中造成了一些问题。请帮我用collectionView实现同样的功能。

请查看图片以获得更清晰的信息。

enter image description here

这是我的代码,

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.tabArray.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "tabCell", for: indexPath) as! tabCollectionViewCell
cell.tabLabel.text = self.tabArray[indexPath.row]
if selectedTabArray.contains(indexPath) {
cell.bottomView.isHidden = false
} else {
cell.bottomView.isHidden = true
}

return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
self.selectedTabArray.removeAll()
selectedTabArray.append(indexPath)
self.tabCollectionView.reloadData()
tabCollectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)

}

最佳答案

您可以在 didSelectItemAt 方法上滚动到该 indexPath

var selectedIndex = 0

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "tabCell", for: indexPath) as! tabCollectionViewCell
cell.tabLabel.text = self.tabArray[indexPath.item]
if self.selectedIndex == indexpath.item {
cell.bottomView.isHidden = false
} else {
cell.bottomView.isHidden = true
}

return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

self.selectedIndex = indexpath.item
self.tabCollectionView.reloadData()
tabCollectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
}

希望这有帮助!

关于ios - 选择单元格时如何自动滚动collectionviewcell到最近的单元格(上一个或下一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59856521/

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