2013-07-09 9 views
17

Ich habe nur eine Wissensfrage zu UIButtons/iOS im Allgemeinen.ios uibutton versteckt: Wird die Schaltfläche automatisch deaktiviert?

Nehmen wir an, Sie haben ein UIButton. Sie legen die "versteckte" Eigenschaft auf JA fest. Das macht es in Sichtweite nicht mehr sichtbar, oder? Aber ich habe bemerkt, dass es zwar nicht mehr sichtbar ist, aber auch nicht mehr anklickbar ist. Bedeutet das, dass die Einstellung "hidden = YES" auch "enabled = NO" setzt?

Nur neugierig. Danke euch allen.

+0

da es nicht sichtbar ist, woher wissen Sie, dass es nicht anklickbar ist? – lakesh

+0

Es wäre sicherlich schneller gewesen, das zu testen, als eine Frage zu schreiben und auf eine Antwort zu warten;) –

+0

es war eher aus Neugierde - also ich glaube ich war nicht ganz so neugierig –

Antwort

28

UIButton und alle Bedienelemente erben gemeinsame Eigenschaften von UIView wie hidden, backgroundColor usw.

Klasse Bezug von UIView sagt, wenn ein nicht sichtbar ist, dann wird es nicht Eingabeereignisse

Klasse Bezug von UIView erhalten sagt:

Eine versteckte Ansicht verschwindet aus ihrem Fenster und empfängt keine Eingaben Ereignisse. Es bleibt jedoch in der Superview-Liste der Subviews und nimmt wie üblich an der Autoresierung teil. Das Ausblenden einer Ansicht mit Unteransichten hat die Wirkung, diese Unteransichten und alle Ansichtsnachkommen, die sie haben, auszublenden. Dieser Effekt ist implizit und ändert nicht den versteckten -Status der Nachkommen des Empfängers.

können Sie dies über Here finden.

+1

Danke Mann. Also - ich denke, das wirft die Frage auf: Was genau ist der Unterschied zwischen "aktiviert" und "userInteractionIsEnabled"? –

+1

'enabled' ist nicht die Eigenschaft von' UIView'. Es ist eine private Eigenschaft von 'UIButton'. "UserInteractionEnabled" ist die Eigenschaft von "UIView", die von "UIButton" übernommen wird. Wenn 'userInteractionEnabled' auf' NO' gesetzt ist, wird das 'UITouch' Ereignis dieser Ansicht oder Schaltfläche deaktiviert, während' enabled' nur Eingaben deaktiviert, nicht aber 'UITouch'. –

+0

Hoffe es wird Ihre nächsten Fragen beantworten. –

0

Nicht sicher. Der beste Weg, um herauszufinden, wäre ein NSLog Returning button.hidden

1

Ja können Sie nicht berühren, wenn es ausgeblendet ist. Wenn Sie es berühren möchten, müssen Sie es btn.hidden = NO; machen. Versteckt bedeutet, dass die Benutzerinteraktion deaktiviert wird.

1

Es tut. Wenn Sie die ausgeblendete Eigenschaft der Schaltfläche auf YES setzen, werden alle Benutzerinteraktionen deaktiviert. Dies gilt für andere UI-Elemente genauso wie für UIButton.