У меня есть выдвижное меню, которое я реализовал как UICollectionViewController. Я также создал пользовательские ячейки для представления коллекции. Навигация и все работает как положено. У меня проблемы с изменением внешнего вида ячеек, когда я нажимаю на фактическую ячейку.
Я пробовал несколько подходов, основанных на решениях ( 1 ) ( 2 ). Я видел здесь в стеке, но ничего, к моему удовольствию.
Решение 1 : реализовать методы делегата UICollectionViewController:
class SlideOutMenuViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout{
//Setup code and other delegate methods….
override func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! SlideOutMenuCells
cell.backgroundColor = .white
}
override func collectionView(_ collectionView: UICollectionView, didUnhighlightItemAt indexPath: IndexPath) {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! SlideOutMenuCells
cell.backgroundColor = UIColor.mainGreen()
}
}
Когда я попробовал это решение, ничего не произошло. Цвет фона ячеек не меняет цвета.
Решение 2 : Это решение приводит к лучшим результатам, за исключением того, что ячейка меняет цвет, когда я держу ячейку. Мне бы хотелось, чтобы цвет фона ячеек мигал или быстро выделялся при нажатии , а не только в том случае, если пользователь удерживает ячейку нажатой.
class SlideOutMenuCells: UICollectionViewCell {
//Setup code...
override var isHighlighted: Bool {
didSet {
if self.isHighlighted {
backgroundColor = UIColor.darkGreen()
} else {
backgroundColor = UIColor.mainGreen()
}
}
}
}
Ни одно из решений не работает должным образом. Я видел несколько постов здесь, которые пытаются решить эту проблему, но не нашел ни одного с решением, которое действительно работает. Я бы хотел, чтобы подсветка ячейки мигала одним касанием, а не только тогда, когда пользователь щелкает и удерживает ячейку ...