2016-03-02 215 views
7

获取可见IndexPath UICollectionView如何获得visible IndexPath而在collectionViewscrolling,我提到很多link1link2indexPathForCell不斯威夫特支持。斯威夫特

+0

要获取所有可见的细胞或特定的细胞 –

回答

4

试试这个

在委托

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) 
12

你试过委托功能?

public func indexPathsForVisibleItems() -> [NSIndexPath] 

collectionView.indexPathsForVisibleItems() 

这些都要给你你想要的东西。

1

斯威夫特,更安全的方式来获得可见的项目

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

可以使用UICollectionView的方法为:

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