Ich habe ein paar UIImageViews in horizontalen UIStackViews, verpackt in einem vertikalen UIStackView, alle zusammen in einem UIScrollView verpackt. In allen UIxx-Elementen ist "Benutzerinteraktion aktiviert" aktiviert. Meine UIViewController versucht, die Wasserhähne zu fangen, wie so:Tippen Sie auf Erkennung UIImageView innerhalb von UIStackView innerhalb von UIScrollView
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
if touch.view is UIImageView {
print("Touch began in image view")
}
}
super.touchesBegan(touches, with:event)
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first{
if touch.view is UIImageView {
print("Touch ended in image view")
}
}
super.touchesEnded(touches, with: event)
}
jedoch, was ich tun kann ich nicht berührt erfassen aus dem UIImageViews in der Stapelansicht enthält. Nichts passiert dann. Die Handler werden nicht aufgerufen. Es gibt noch eine weitere UIView, die gut reagiert.
View-Layout-in angehängtem Bild
Alle Zeiger willkommen.
ein wenig weiter Got getan wurde: Had a UITapGestureRecognizer auf die UIScrollView um abfangen berührt UIImageViews hinzuzufügen. \t \t lassen tapGesture = UITapGestureRecognizer (Ziel: Selbst, Aktion: #selector (tapScrollView)) \t \t scrollView.addGestureRecognizer (tapGesture) \t \t @objc func tapScrollView (Sender: UITapGestureRecognizer) { \t \t print ("abgehört") \t}. Jetzt müssen Sie das berührte Bild identifizieren – decades