У меня есть UICollectionView
, в котором UICollectionViewCells
. Когда пользователь касается UICollectionView
, я хочу получать уведомления об этом, пока он не отпустит свой палец. Я попытался создать подкласс UICollectionView
следующим образом:
final class MyCollectionView: UICollectionView {
var hasTouch = false
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesBegan(touches, with: event)
hasTouch = true
}
override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesCancelled(touches, with: event)
hasTouch = false
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
hasTouch = false
}
}
Но это не работает, когда в пути есть ячейки, потому что они не передают свои касания представлению коллекции. Один из способов решения этой проблемы состоит в том, чтобы установить для userInteractionEnabled
значение false в ячейках, но я не могу этого сделать, потому что мне нужно, чтобы значение userInteractionEnabled
было истинным для ячеек. Как я могу решить это?