Jaki jest wpływ widzenia.alpha = 0 vs view.hidden = YES?

[4]}przejrzystość jest zła, na urządzeniach z iOS nawet bardziej niż na cięższych maszynach. Dlatego pomyślałem, że najpierw użyję view removeFromSuperView, jeśli nie dotyczy view.hidden=YES i w ostateczności view.alpha=0. Ale nie wiem, co dzieje się za kulisami. Czy jest jakaś różnica, zwłaszcza między tymi dwoma ostatnimi?

Mam scenariusz UIView animateWithDuration:animations:completion:, w którym jeśli umieścisz hidden=YES w bloku zakończeń, ukryje się, nie pozwalając na zakończenie bloku animacji. Dlatego muszę uciekać się do alpha=0.

Co czy kary jednego nad drugim? Zdrówko, EP.

Author: Suhaib, 2011-02-28

3 answers

Nie jestem pewien, czy Widok Z alpha 0.0 jest nadal rysowany. Sprawdź bibliotekę dokumentacji:

Ukrywanie Widoków

Aby ukryć widok wizualnie, możesz ustawić jego ukrytą właściwość na yes lub zmienić jego właściwość alfa na 0.0 . Widok ukryty nie odbiera zdarzeń dotykowych z systemu. Jednak ukryte widoki biorą udział w automatyzacji i innych operacjach układu powiązanych z hierarchią widoków. Dlatego ukrywanie widoku jest często wygodne alternatywa dla usuwania widoków z hierarchii widoków, zwłaszcza jeśli w najbliższym czasie planujesz je ponownie wyświetlić.

Znalazłem również tę odpowiedź tutaj http://www.iphonedevsdk.com/forum/iphone-sdk-development/65525-whats-difference-between-alpha-0-hidden-yes.html

Mówi:

Uważam, że Cocoa Touch traktuje I alpha mniej niż 0,02 jako również ukryte, ponieważ poniżej tego poziomu alfa jest niewidoczne, a inżynierowie Apple zdecydowali niewidoczne elementy sterujące nie powinny być klikalne.

Użycie wartości alfa wymaga, aby sprzęt graficzny łączył każdy piksel z obiektem ze wszystkim, co znajduje się pod nim. To jest intensywne obliczeniowo. Ukryta flaga jest natomiast przełącznikiem. Jeśli go włączysz, system operacyjny wie, że w ogóle nie musi rysować obiektu.

 59
Author: LightMan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 17:02:52

Jedną z zalet ustawienia właściwości alpha zamiast ukrytej jest to, że właściwość alpha gra przyjemniej z animacjami. Miałem animację, aby pokazać/ukryć mój pasek nawigacji i kiedy używałem właściwości Alfa pasek nawigacji zniknął, podczas gdy ukryta właściwość była bardziej nagła.

 3
Author: TPoschel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-12 14:58:48

Coś z zerową alfą nadal jest rysowane, jednak ukryty widok nie jest ponownie rysowany na ekranie. Ponieważ dzieje się tak tylko wtedy, gdy widok i tak się zmienia, różnica powinna być znikoma. Jeśli masz problemy z wydajnością, Gorąco polecam profilowanie za pomocą time profiler i podstawowych instrumentów animacji.

 2
Author: Skyler Saleh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-28 20:10:57