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.
Pour créer une IndexPath
dans Swift 3 pour UICollectionView
let indexPath = IndexPath(item: 0, section: 0)
Tu peux l'utiliser
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
Swift 3 Dernières
self.table.reloadRows(at: [IndexPath(row: 0, section: 0)], with: .fade)
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?
}