在 Swift 中获取可见的 IndexPath UICollectionView
Posted
技术标签:
【中文标题】在 Swift 中获取可见的 IndexPath UICollectionView【英文标题】:Get Visible IndexPath UICollectionView in Swift 【发布时间】:2016-03-02 07:09:37 【问题描述】:如何在collectionView
中获取scrolling
时获得visible IndexPath
,我推荐了很多link1,link2 但Swift 不支持indexPathForCell
。
【问题讨论】:
【参考方案1】:你试过委托功能吗?
public func indexPathsForVisibleItems() -> [NSIndexPath]
或
collectionView.indexPathsForVisibleItems()
这些必须给你你想要的。
【讨论】:
【参考方案2】:Swift,获取可见项目的更安全方式:
if let indexPaths = self.collectionView.indexPathsForVisibleItems
//Do something with an indexPaths array.
【讨论】:
【参考方案3】:试试这个
委托
func scrollViewDidEndDecelerating(scrollView: UIScrollView)
for cell in yourCollectionViewname.visibleCells() as [UICollectionViewCell]
let indexPath = yourCollectionViewname.indexPathForCell(cell as UICollectionViewCell)
NSLog("%@", indexPath)
选择 2
按钮点击
var point : CGPoint = sender.convertPoint(CGPointZero, toView:yourCollectionViewname)
var indexPath =yourCollectionViewname!.indexPathForItemAtPoint(point)
显示所有项目
您可以使用 indexPathsForVisibleRows
返回一个索引路径数组,每个索引路径标识接收器中的可见行。
(NSArray *)indexPathsForVisibleItems;
var visible: [AnyObject] = yourCollectionViewname.indexPathsForVisibleItems
var indexpath: NSIndexPath = (visible[0] as! NSIndexPath)
【讨论】:
【参考方案4】:这会很好用。
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>)
let visibleIndex = Int(targetContentOffset.pointee.x / collectionView.frame.width)
print(visibleIndex)
【讨论】:
【参考方案5】:你可以使用 UICollectionView 的方法:
let indexPath = NSIndexPath(item: value1, section: value2)
【讨论】:
你的回答与问题完全无关以上是关于在 Swift 中获取可见的 IndexPath UICollectionView的主要内容,如果未能解决你的问题,请参考以下文章
在 UICollectionView 滚动后获取可见项目的更新 IndexPath
Swift iOS - 如何在按下单元格之前从 TableView 的所有 IndexPath 中获取数据
如何获取自定义单元格并通过 indexpath 使用它的自定义项 - swift3?
iOS 和 Swift:可以强制解开 tableView.indexPath?