web-dev-qa-db-fra.com

Comment obtenir indexpath à partir d'index de ligne Swift

Je charge un tableau à UIcollectionview (plus tard, ajoutera d'autres données). Je veux sélectionner un élément de vue de collection de manière aléatoire comme:

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

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

Ici, c’est une erreur en position audacieuse:

impossible de convertir la valeur de type Int en type d'argument attendu 'IndexPath?

Je peux comprendre cette exception car indexpath est différent dans Swift à partir de l'index de données de collection (index de tableau). Mais je suis incapable de trouver une méthode capable de convertir un index d'élément en indexpath ou de toute autre manière.

Comme je suis plus récent sur iOS, je ne suis peut-être pas doué pour la recherche de mots-clés corrects pour un tel problème. Ce sera une grande faveur de votre part pour toute autre méthode répondant à cette exigence.

4
Saira Nawaz

Pour créer une IndexPath dans Swift 3 pour UICollectionView

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

Tu peux l'utiliser 

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

Swift 3 Dernières

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

Swift 4.1. Ici, j'ai créé une fonction pour obtenir NSIndexPath. Passez simplement vos objets UIView (UIButton, UITextField, etc.) et UICollectionView pour obtenir 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?
    }
0
GSK