2013-10-02 15 views
7

Używam przełącznika UIS do wywoływania podglądu na ekranie w mojej aplikacji. Jednak przełącznik działa tylko w 60% przypadków. Aby przetestować mój kod, podpiąłem przełącznik do innej IBAction, aby zapisać stan przełącznika na konsolę. Obie funkcje nie reagują na stan przełącznika w pewnych momentach, tj. Obie funkcje ignorują jednocześnie stan przełącznika przez pewien czas. Czy ktokolwiek inny doświadczał tego zachowania z UISwitches w iOS7?Możliwy błąd UISwitch w iOS7?

- (IBAction)showHideSomeSubView:(UISwitch *)sender { 
if (_mySwitch.on) { 
    [self.view addSubview:someSubView]; 
} 
else { 
    [someSubVew removeFromSuperview]; 
}} 

Edit:

Ten sam przełącznik jest podłączony do następującego działania:

- (IBAction)switchToggled:(UISwitch *)sender { 
sender = _mySwitch; 
if ([sender isOn]) { 
    NSLog(@"On"); 
} else { 
    NSLog(@"Off"); 
}} 

Obie akcje reagować w ten sam sposób do przełącznika.

+0

Jakiego wydarzenia używasz, aby zareagować na zmianę stanu? – Abizern

+0

Czy możesz napisać swój kod? – Woodstock

+0

@Abizern: IBAction, który pokazuje/ukrywa wywiady. – Barry

Odpowiedz

3

Używam kilku UISwitches w aplikacji iOS 7, nie miałem żadnego problemu w ogóle reagować na akcję Value Changed. Przełącznik konsekwentnie zgłasza swoją wartość poprawnie. Odłącz przełącznik od działania w IB, a następnie podłącz go ponownie, upewniając się, że łączysz działanie "Zmieniono wartość".

3

Tak, z UISwitch w symulatorze iOS 7 iPad, widzę 1-12 callbacks do mojego odpowiednika metody switchToggled :. Podczas ostatniego oddzwonienia wartość faktycznie się zmieniła. W poprzednich callbackach nie ma. To, co robię, to buforowanie, czy przełącznik jest włączony czy nie. Następnie w metodzie switchToggled: sprawdzam, czy wartość rzeczywiście się zmieniła. Jeśli nie, zignoruję wywołanie zwrotne. Wydaje się, że rzeczy zachowują się poprawnie dla użytkownika.

Problem zdarza się również na urządzeniu, chociaż widocznie rzadziej. Wydaje się, że działa tam to samo obejście.

4

Potwierdzam to dziwne zachowanie z wami !!!! Po prostu przeciągnij kółko przełącznika dookoła i dookoła, zobaczysz akcję o nazwie wiele razy (w moim przypadku do 403: D). Naprawdę nie jestem pewien, co inżynierowie Apple zamierzali zrobić, ponieważ ja nie znaleźć dokumentację na temat tego nowego zachowania, BTW, jeśli znajdziesz, proszę dać mi znać.

Bardzo dziękuję

Powiązane problemy