在Swift中获取Visible IndexPath UICollectionView

时间:2016-03-02 07:09:37

标签: ios swift uicollectionview

如何visible IndexPath scrolling collectionView indexPathForCellfactory.setVirtualHost("vhost");link1 link2here但Swift不支持 Intent intent = new Intent(YourActivityName.this, MainActivity.class); if(mainContext!=null){ mainContext.startActivity(intent); ((Activity)mainContext).finish(); }

5 个答案:

答案 0 :(得分:15)

您是否尝试过委托功能?

public func indexPathsForVisibleItems() -> [NSIndexPath]

collectionView.indexPathsForVisibleItems()

这些必须给你你想要的东西。

答案 1 :(得分:7)

试试这个

代表

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)

答案 2 :(得分:4)

Swift,更安全的获取可见项目的方式

if let indexPaths = self.collectionView.indexPathsForVisibleItems {
    //Do something with an indexPaths array.
}

答案 3 :(得分:2)

  

这可以正常工作。

func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

    let visibleIndex = Int(targetContentOffset.pointee.x / collectionView.frame.width)
    print(visibleIndex)

}

答案 4 :(得分:0)

您可以使用UICollectionView的方法:

let indexPath = NSIndexPath(item: value1, section: value2)