如何从行索引Swift获取indexpath

时间:2017-01-17 10:52:51

标签: ios swift collectionview indexpath

我正在将数组加载到UIcollectionview(稍后将添加其他数据)。我想随机选择集合视图项:

var indexpath = Int(arc4random_uniform(UInt32(items.count)-1) 

self.collectionview.selectitem(at: **indexpath**, animated:true ,scrollPosition:UICollectionViewScrollPosition)

这是在大胆的位置给我错误说:

  

无法将Int类型的值转换为期望的参数类型' IndexPath?

我可以理解这个异常,因为indexpath在swift中与集合数据索引(数组索引)不同。但是我无法找到任何可以将项索引转换为索引路径或任何其他方式的方法。

我是iOS的新手,所以可能不擅长为这样的问题搜索正确的关键字。对于满足此要求的任何其他方法,大家都会非常乐意。

4 个答案:

答案 0 :(得分:22)

IndexPath

的swift 3中创建UICollectionView
let indexPath = IndexPath(item: 0, section: 0)

答案 1 :(得分:3)

你可以使用它

let indexPath = NSIndexPath(forRow: 0, inSection: 0)

答案 2 :(得分:0)

Swift 3最新

self.table.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .fade)

答案 3 :(得分:0)

迅速4.1。在这里,我创建了获取NSIndexPath的函数。只需传递您的UIView(UIButton,UITextField等)和UICollectionView对象即可获得NSIndexPath。

func getIndexPathFor(view: UIView, collectionView: UICollectionView) -> NSIndexPath? {

        let point = collectionView.convert(view.bounds.origin, from: view)
        let indexPath = collectionView.indexPathForItem(at: point)
        return indexPath as NSIndexPath?
    }