Hızlı 5
Goblenli gözetim düğmesi
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
if let _ = touch.view as? UIButton { return false }
return true
}
Benim durumumda hitTest uygulamak benim için çalıştı. Düğmeli koleksiyon görünümüm vardı
Bu yöntem, hangi alt görünümün point(inside:with:)
bir dokunma olayı alması gerektiğini belirlemek için her alt görünümün yöntemini çağırarak görünüm hiyerarşisini dolaşır. Eğer point(inside:with:)
döner doğru belirtilen noktayı içeren en öndeki görünümü bulunana kadar, daha sonra Subview hiyerarşisi benzer kat edilmiştir.
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
guard isUserInteractionEnabled else { return nil }
guard !isHidden else { return nil }
guard alpha >= 0.01 else { return nil }
guard self.point(inside: point, with: event) else { return nil }
for eachImageCell in collectionView.visibleCells {
for eachImageButton in eachImageCell.subviews {
if let crossButton = eachImageButton as? UIButton {
if crossButton.point(inside: convert(point, to: crossButton), with: event) {
return crossButton
}
}
}
}
return super.hitTest(point, with: event)
}