gpt4 book ai didi

ios - 自动选择 Collection View 的中间可见单元格

转载 作者:行者123 更新时间:2023-11-28 07:19:55 26 4
gpt4 key购买 nike

我试图在任何给定时间选择并突出显示 Collection View 中可见单元格的中间单元格。所讨论的 Collection View 显示前后六个月的天数。

我试过使用 ScrollView 委托(delegate)和 Collection View 委托(delegate)。但所有有效的是选择并突出显示 didSelectItem() Collection View 委托(delegate)中的代码。

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

print("delegate called")
collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
collectionView.cellForItem(at: indexPath)?.backgroundColor = UIColor.highlightCellGreen()
if let cell = collectionView.cellForItem(at: indexPath) as? ClientListDateCollectionViewCell{
monthLabel.text = cell.monthName
monthLabel.text = monthLabel.text?.capitalized

}

我试图在使用 viewDidScroll() 委托(delegate)滚动时选择中间的单元格。但是,我无法获得我想要的输出。

func scrollViewDidScroll(_ scrollView: UIScrollView) {

let visibleCellCount = dateCollectionView.indexPathsForVisibleItems.count
let cellCount = dateCollectionView.visibleCells.count
let visibleCells = dateCollectionView.indexPathsForVisibleItems[visibleCellCount-1/2]
if visibleCellCount>0{
let middle = visibleCellCount/2
let midValue = dateCollectionView.indexPathsForVisibleItems[middle]
dateCollectionView.selectItem(at: midValue, animated: true, scrollPosition: .centeredHorizontally)
}

我该如何选择中间的单元格?

编辑 1: Collection View 从最左边的点开始,然后滚动到中间,即今天的日期

最佳答案

您可以使用 UICollectionView 的委托(delegate)(即:didHighlightItemAtIndexPath)。只需确保通过调用重新加载函数在您想要的时间调用 Collection View 委托(delegate)

self.collectionView.reloadData()

在你的collection view delegate中就这样做

 func collectionView(collectionView: UICollectionView, didHighlightItemAtIndexPath indexPath: NSIndexPath){

var cell : UICollectionViewCell = UICollectionViewCell()

self.collectionView.cellForItemAtIndexPath = indexPath
//change highlighted color as of your need
cell.view.backgroundColor = UIColor.init(red: 25, green: 118, blue: 210).cgColor
}

这将突出显示您选择的项目

关于ios - 自动选择 Collection View 的中间可见单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58501484/

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