Ich habe folgendes Setup.Wie übergebe ich das Touch-Ereignis an Superview, wenn userInteractionEnabled = YES?
+- XXXCustomControl : UIControl -------+
| A |
| +- ContentView -------------------+|
| | ||
| | B ||
| | ||
| +---------------------------------+|
+--------------------------------------+
Ein XXXCustomControl, das eine Unterklasse von UIControl ist. Es enthält eine Unteransicht namens contentView vom Typ UIView mit einer Größe, die kleiner ist als der Bereich des Steuerelements. Diese Ansicht hat .userInteractionEnabled = YES;
Ich muss diese Eigenschaft auf YES gesetzt haben, weil horizontale scrollviews hin und wieder eingefügt werden und sie scrollbar sein müssen. Wenn der Superview (in unserem Fall die Inhaltsansicht keine Benutzerinteraktion zulassen würde, wird dies von den Subviews übernommen.) Aber gleichzeitig muss dieses XXXCustomControl tappbar sein, wenn es in seiner Inhaltsansicht keinen scrollview nicht nur in Bereich A, sondern enthält auch in Gebiet B.
So habe ich eine „Interessenkonflikt“ hier, weil ich entweder
1), um den Inhalt Ansicht verwenden userInteractionEnabled = NO, dann kann ich die leere Kontrolle im Inhaltsanzeigebereich tippen beide in A und B, aber die scrollviews, die ich dort setze, werden nicht scrollbar sein.
2) setze die Inhaltsansicht zu userInteractionEnabled = YES aber dann, wenn die Kontrolle leer ist, Ich kann nur auf Bereich A tippen, um ein Berührungsereignis auszulösen.
Eine Idee, die ich gefunden habe, ist, dass ich die Eigenschaft standardmäßig auf NO gesetzt habe und wenn ich die contentView bevölkere, setze ich sie auf yes. Wenn ich den ContentView lösche, setze ich die Eigenschaft zurück auf Nein. Grundsätzlich möchte ich, dass dies die ganze Zeit auf "yes" gesetzt wurde, und wenn es leer ist, erzwinge die contentView, das Ereignis "touchUpInside" an seine Superansicht zu übergeben.
Ist das möglich?
Wenn Sie nur tippen egal warum nicht ein GestureRecognizer der Ansicht Kind hinzufügen, die Aktion ist ist das gleiche wie der Gestenerkennung in der Elternansicht? Das scheint die einfachste Implementierung zu sein. – Putz1103
Warum haben Sie keine Antwort vergeben? Michaels funktioniert für mich ... –
Besser spät als nie ... –