web-dev-qa-db-ja.com

行インデックスからインデックスパスを取得する方法Swift

配列をUIcollectionviewにロードしています(後で他のデータが追加されます)。コレクションビューアイテムを次のようにランダムに選択します。

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

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

ここで私は大胆な位置で私にエラーを言っています:

タイプIntの値を予期される引数タイプ 'IndexPath?

indexpathはSwiftがコレクションデータインデックス(配列インデックス)とは異なるため、この例外を理解できます。しかし、アイテムインデックスをindexpathまたはその他の方法で。

私はiOSの方が新しいので、そのような問題の正しいキーワードを検索するのは得意ではないかもしれません。この要件に対する他の方法については、皆さんからの好意です。

5
Saira Nawaz

Swift 3 for IndexPathUICollectionViewを作成するには

let indexPath = IndexPath(item: 0, section: 0)
25
KrishnaCA

使えます

let indexPath = NSIndexPath(forRow: 0, inSection: 0)
3
Syed Ali Salman

Swift 3最新

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

Swift 4.1。ここでは、NSIndexPathを取得する関数を作成しました。 NSIndexPathを取得するには、UIView(UIButton、UITextFieldなど)とUICollectionViewオブジェクトを渡すだけです。

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?
    }
0
Gurjinder Singh