gpt4 book ai didi

ios - 在 UICollectionView 中查找中间可见单元格的索引

转载 作者:行者123 更新时间:2023-11-30 13:10:59 25 4
gpt4 key购买 nike

这是我当前在自定义 CollectionView 布局中的代码

/* Returns the item index of the currently middle cell */
var middleItemIndex: Int {
get {
let centerPoint = CGPoint(x: collectionView!.center.x + collectionView!.contentOffset.x,
y: collectionView!.center.y + collectionView!.contentOffset.y)

let centerCellIndexPath = collectionView?.indexPathForItemAtPoint(centerPoint)

return (centerCellIndexPath?.item)!
}
}

override func prepareLayout() {
print(middleItemIndex)
}

我在 indexPathForItemAtPoint 线路上不断收到 exc_bad_access 错误。经过进一步检查,我的堆栈跟踪显示它不断重复 collectionview 的 prepareForLayout() 和上面的 featuredItemIndex 方法,这让我相信featuredItemIndex 内的代码包含无限循环,最终造成堆栈溢出。

我看不出导致错误的原因。在自定义布局类中调用 CollectionView 的属性是否会创建无限循环?如果是这种情况,有没有办法找到 Collection View 中中间单元格的索引?我的 Collection View 看起来与表格 View 完全相同,我使用 Collection View 是因为与单元格布局会有很多自定义交互

最佳答案

我认为使用indexPathsForVisibleItems来查找中间索引更好。我不太确定 indexPathForItemAtPoint 的机制。也许它会重新布局单元格来测试你的点是否在你的单元格中。但实际上,您可以使用 indexPathsForVisibleItems 来让您的中间索引路径更轻松、更安全。

关于ios - 在 UICollectionView 中查找中间可见单元格的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38740671/

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