J'utilise horizontal collectinview pour afficher les articles. lorsque l'utilisateur sélectionne/désélectionne l'élément que j'ajoute/supprime une bordure blanche sous le texte.auto selected Elément au premier chargement
ici est le code
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if let cell = collectionView.cellForItem(at: indexPath) {
if cell.isSelected {
bottomLayer.frame = CGRect(x: 0, y: (cell.frame.height) - 7, width: (cell.frame.width), height: 3)
bottomLayer.backgroundColor = UIColor.white.cgColor
cell.layer.addSublayer(bottomLayer)
}
}
}
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
if collectionView.cellForItem(at: indexPath) != nil {
bottomLayer.backgroundColor = UIColor.green
}
}
Ce que je veux quand je charge vue collection premier élément doit charger le bottomLayer
(avec soulignement)
J'ai essayé le code
let indexPathForFirstRow = IndexPath(row: 0, section: 0)
CollectionView.selectItem(at: indexPathForFirstRow, animated: true, scrollPosition: [])
collectionView(CollectionView, didSelectItemAt: indexPathForFirstRow)
mais ne fonctionne pas. J'ai cherché beaucoup de questions mais la plupart d'entre elles ont la même solution et ne fonctionnent pas dans mon cas. Quelqu'un peut-il m'aider s'il vous plaît?
Je suis le chargement CollectionView sur l'événement d'action bouton. J'ai donc ajouté ce code juste après le chargement de collectionview. Et il déclenche la méthode didSelectItem mais échoue à 'si let cell = collectionView.cellForItem (at: indexPath)' Des suggestions ?? – iUser
'CollectionView.layoutIfNeeded()' a fait la magie !! Merci beaucoup. – iUser