J'ai une vue de collection horizontale des boutons. Lorsque l'un d'eux est cliqué, l'utilisateur est amené à un autre contrôleur de vue. Souvent, tous les boutons ne sont pas visibles, donc ce que je voudrais, c'est que le bouton sélectionné soit du côté le plus à gauche de la vue de la collection. J'essayais de faire cela avec la fonction scrollToItem. Le problème est qu'il continue à faire défiler la vue de collection tout le chemin vers la droite à chaque fois.ScrollToItem ne fonctionne pas correctement
Code pertinent:
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return labelArray.count
}
//frees up the collection view when the scroll is active
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
isScrolling = true
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
//possible problem
if isScrolling == false {
collectionView.scrollToItem(at: indexPath, at: UICollectionViewScrollPosition.left, animated: false)
}
let myLabel = cell.viewWithTag(1) as! UILabel
let myArray = labelArray[indexPath.row]
myLabel.text = labelArray[indexPath.row]
myLabel.textColor = UIColor.white
if myArray == labelArray[1] {
cell.backgroundColor = UIColor.black
} else {
cell.backgroundColor = UIColor(red: 56/255, green: 120/255, blue: 195/255, alpha: 1)
}
return cell
}
Toute aide serait grandement appréciée.
J'ai donc essayé d'implémenter ceci dans la méthode didSelectItemAt. Il arrête la vue de collection du défilement vers le côté droit au début, le problème est que cela ne fait rien. –
J'ai testé que le code ci-dessus, voir modifier, fonctionne dans une application de vue de collection simple que j'ai construit. Sans voir comment vous avez implémenté la méthode didSelectItemAt ou le reste du code de votre classe, je ne sais pas où est votre problème. – bjd23
Je l'ai eu pour fonctionner dans la méthode cellForItemAt. Juste eu à coder en dur l'index de l'article. Je posterai la réponse. Merci pour votre aide. –