Wie kann ich das Berührungsereignis eines UIImageView erkennen?
Habe ich ein Bild (UIImageView) auf der Navigationsleiste. Nun möchte ich erkennen, die touch-event und wollen das Ereignis behandeln. Könnten Sie lassen Sie mich wissen, wie kann ich das tun?
Dank.
InformationsquelleAutor der Frage ebaccount | 2009-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Praxis nicht tun.
Stattdessen fügen Sie eine Schaltfläche mit Benutzerdefinierten Stil (kein button-Grafiken, es sei denn, Sie geben Sie die Bilder) über die UIImageView. Dann befestigen was auch immer Methoden, die Sie wollen, genannt.
Können Sie diese Technik für viele Fälle, in denen Sie wirklich wollen, einige Bereich des Bildschirms zu handeln, wie eine Taste anstelle von messing mit dem Touch Zeug.
InformationsquelleAutor der Antwort Kendall Helmstetter Gelner
Einen
UIImageView
ist abgeleitet von einemUIView
welche sich aus derUIResponder
so es ist bereit zu behandeln touch-Ereignisse. Sie wollen werde, um dietouchesBegan
touchesMoved
undtouchesEnded
Methoden und Sie werden aufgerufen, wenn der Benutzer tippt auf das Bild. Wenn alles, was Sie wollen, ist ein Tippen Sie auf ein Ereignis, es ist einfacher zu benutzen Sie einfach eine benutzerdefinierte Schaltfläche mit dem Bild, das als Schaltfläche Bild. Aber wenn Sie wollen, feiner Getreide-Steuerung über taps, bewegt, etc. dies ist der Weg zu gehen.Werden Sie auch einen Blick auf ein paar Dinge:
Überschreiben
canBecomeFirstResponder
und zurück JA, um anzugeben, dass die Ansicht kann sich der Fokus der touch-Ereignisse (die Standardeinstellung ist NEIN).Legen Sie die
userInteractionEnabled
- Eigenschaft auf JA. Die Standardeinstellung fürUIViews
ist JA, aber fürUIImageViews
ist NICHT so dass Sie explizit einschalten.Wenn Sie möchten, um zu reagieren multi-touch-Ereignisse (z.B. pinch -, zoom -, usw.) Sie festlegen möchten
multipleTouchEnabled
JA.InformationsquelleAutor der Antwort Ramin
Hinzufügen eine touch-event auf ein UIImageView verwenden Sie den folgenden in Ihr .m
hoffe, das hilft.
InformationsquelleAutor der Antwort Yup.
Können Sie auch hinzufügen, eine UIGestureRecognizer. Es ist nicht erforderlich, das hinzufügen eines zusätzlichen Elements in der view-Hierarchie, aber trotzdem bietet Sie alle werden die gut geschriebenen code zur Verarbeitung von touch-events mit einer relativ einfachen Schnittstelle:
InformationsquelleAutor der Antwort spolu
Habe ich schon in verschiedenen threads auf die letzten paar Stunden versucht, eine Lösung zu finden für mein problem, ohne Erfolg.
Ich sehe, dass viele devs teilen dieses problem, und ich glaube, die Leute hier wissen das.
Ich habe mehrere Bilder in einem
UIScrollView
versuchen, Tippen Sie auf Veranstaltungen auf Sie.nicht immer alle Ereignisse aus einem
UIImangeView
aber ich habe doch ein Ereignis von einer ähnlichenUILable
mit sehr ähnlichen Parametern ich bin Einstellung. unter IOS 5.1.Habe ich bereits Folgendes getan:
Blick .
UIImageView
.UIImageView
nicht helfen.Anbringen einiger code in diesem code Initialisiere ich die beiden ein
UIImageView
undUILabel
das label funktioniert gut in Bezug auf Ereignisse auslösen. Ich habe versucht, halten Sie irrelevant-code.Danke Jungs,
Ilan
Und die Methode, die das Ereignis behandelt:
Wie gesagt, das label Tippen eingegangen ist.
InformationsquelleAutor der Antwort ilan
Statt, die eine berührbare UIImageView dann platzieren Sie auf der Navigationsleiste, Sie sollten erstellen Sie einfach ein UIBarButtonItem, die Sie machen aus einem UIImageView.
Stellen Sie zunächst die Bild-Ansicht:
Dann machen die barbutton Element aus Ihrem Bild anzeigen:
Dann fügen Sie die bar-Taste Element zur Navigationsleiste:
Denken Sie daran, dass dieser code geht in den view-controller, die in einem Navigations-controller-viewcontroller-array. Also im Grunde, das "anfassbare Bild-Suche bar button item" erscheint nur in der Navigationsleiste, wenn diese Ansicht-controller, wenn es gezeigt wird. Wenn Sie drücken Sie eine andere view-controller, der navigation bar-button-item verschwindet~
InformationsquelleAutor der Antwort yujean
Dem, was Sie vielleicht tun möchten, überschreiben Sie die
touchesBegan:withEvent:
Methode derUIView
(oder Unterklasse) enthält, dieUIImageView
Untersicht.Innerhalb dieser Methode zu testen, ob eine der
UITouch
berührt, fallen innerhalb der Grenzen desUIImageView
Instanz (sagen wir es heißtimageView
).Ist, hat die
CGPoint
element[touch locationInView]
schneiden, mit demCGRect
element[imageView bounds]
? Schauen Sie in die FunktionCGRectContainsPoint
um diesen test durchzuführen.InformationsquelleAutor der Antwort Alex Reynolds
Für diejenigen, die für eine schnelle 4 Lösung zu dieser Antwort. Sie können mit dem folgenden zu erkennen ob ein touch-event auf einer UIImageView.
Müssen Sie dann definieren Sie Ihre Selektor wie folgt:
InformationsquelleAutor der Antwort Josh
Zuerst sollten Sie einen UIButton dann ist man entweder vcan Hintergrundbild hinzufügen diese Schaltfläche, oder Sie benötigen, um eine UIImageView über die Schaltfläche.
InformationsquelleAutor der Antwort hilaj
Hinzufügen Geste auf die Ansicht.fügen Sie das Bild in dieser Ansicht, dann wäre es die Erkennung von gesten auf das Bild zu.Sie könnten versuchen, mit der delegate-Methode des touch-event dann in diesem Fall auch könnte es erkennen.
Dank
InformationsquelleAutor der Antwort user1240409