2013-07-09 25 views
17

Po prostu mam pytanie dotyczące wiedzy na temat UIButtons/iOS w ogóle.Ukryty ios uibutton: czy to automatycznie powoduje wyłączenie przycisku?

Załóżmy, że masz UIButton. Ustawiasz "ukrytą" właściwość na TAK. To sprawia, że ​​nie jest już widoczny, prawda? Zauważyłem jednak, że chociaż nie jest już widoczny, nie można go już klikać. Czy to oznacza, że ​​ustawienie hidden = YES również ustawia enabled = NO?

Po prostu ciekawy. Dzięki ci.

+0

ponieważ nie jest widoczny, skąd wiadomo, że nie można go kliknąć? – lakesh

+0

Z pewnością szybciej byłoby przetestować to, niż napisać pytanie i czekać na odpowiedź;) –

+0

to było bardziej ze względu na ciekawość - więc domyślam się, że nie byłem aż tak ciekawy –

Odpowiedz

28

UIButton i wszystkie kontrolki dziedziczy cechy wspólne z UIView jak hidden, backgroundColor itp

odniesienia

Klasa UIView mówi, że jeśli każdy widok jest ukryta, to nie otrzyma zdarzeń wejściowych

odniesienie klasa UIView mówi:

Ukryty widok znika z jego okna i nie otrzymuje zdarzeń wejściowych . Pozostaje jednak na liście podekspozycji, a uczestniczy w automatycznym przypisywaniu. Ukrywanie widoku z subviewsami ma wpływ na ukrycie tych subskrybentów i widoków potomnych, które mogą mieć ich potomkowie. Ten efekt jest ukryty i nie zmienia ukrytego potomka odbiorcy.

można znaleźć to ponad Here.

+1

Dzięki człowieku. Więc - myślę, że to nasuwa pytanie: jaka jest dokładnie różnica między "włączonym" a "userInteractionIsEnabled"? –

+1

'enabled' nie jest własnością' UIView'. Jest to własność prywatna 'UIButton'. Natomiast 'userInteractionEnabled' jest własnością' UIView', która jest dziedziczona przez 'UIButton'. Jeśli "userInteractionEnabled" jest ustawione na "NIE", to wyłącza zdarzenie "UITouch" tego widoku lub przycisku, natomiast 'enabled' wyłącza wejścia tylko nie' UITouch'. –

+0

Mam nadzieję, że odpowiedzą na następne pytania. –

0

Nie jestem pewien. Najlepszym sposobem, aby się tego dowiedzieć, jest przycisk zwracający NSLog. Ukryty

1

Tak, nie można dotknąć przycisku, gdy jest on ukryty. Jeśli chcesz go dotknąć, musisz go ustawić jako btn.hidden = NO;. Ukryty oznacza wyłączenie interakcji użytkownika.

1

To robi. Ustawienie właściwości ukrytych przycisków na TAK spowoduje wyłączenie wszelkiej interakcji użytkownika. Dotyczy to innych elementów interfejsu użytkownika, a także tylko UIButton.