Я сделал нечто подобное, но поместил анимацию в метод didSelectItemAt:
, а не в методы выделения.Я перехожу к другому представлению и поэтому помещаю переход в завершенную часть закрытия.
UIView.animate(withDuration: 0.1, delay: 0, options: [.curveEaseOut], animations: {
cell.transform = CGAffineTransform(scaleX: 0.95, y: 0.95)
}) { finished in
UIView.animate(withDuration: 0.1, delay: 0, options: [.curveEaseIn], animations: {
cell.transform = CGAffineTransform.identity
}) { finished in
self.performSegue(withIdentifier: "YOUR-SEGUE-HERE", sender: indexPath)
}
}
РЕДАКТИРОВАТЬ: Извинения.Я думаю, что я читал то, что хотел прочитать.Я взглянул на приложение и думаю, что вам нужно сделать что-то вроде захвата касаний, вставив следующее в ваш подкласс UICollectionViewCell.Очевидно, вам нужно изменить вещи для вашего конкретного случая использования.
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
UIView.animate(withDuration: 0.1) {
self.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
UIView.animate(withDuration: 0.1) {
self.transform = CGAffineTransform(scaleX: 1, y: 1)
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
UIView.animate(withDuration: 0.1) {
self.transform = CGAffineTransform(scaleX: 1, y: 1)
}
}