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.
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.
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.
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.
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