Czy istnieje narzędzie GUI, które sprawdza hierarchię widoków aplikacji na iOS? Myślę o inspektorze sieci Webkit lub podobnych narzędziach. Chcę debugować problemy z układem, takie jak widoki mające niewłaściwą pozycję lub rozmiar lub dziecko nie jest poprawnie zawarte w swoim nadrzędnym. Obecnie muszę dodać potwierdzenia, które testują te różne warunki ręcznie lub ustawiają różne kolory tła w różnych widokach, i jak możesz sobie wyobrazić, jest to naprawdę żmudny sposób.
Spojrzałem na Instruments UI recorder
, ale to tylko nagrywa i odtwarza działania interfejsu użytkownika, aw każdym razie działa tylko dla aplikacji Mac.
Czy jest lepsze rozwiązanie?
źródło
Nie wiem, czy istnieje narzędzie do inspekcji widoku GUI, ale miałem trochę szczęścia z metodą debugowania w UIView:
-recursiveDescription
jeśli zatrzymasz program w debugerze i wprowadzisz to do GDB (Edycja: działa również w LLDB)
Otrzymasz wydruk całej hierarchii widoków. Możesz również wywołać go w określonym widoku, aby uzyskać wydruk hierarchii widoków tego widoku.
Przeszukiwanie informacji, które z niej uzyskasz, może być trochę nudne, ale okazało się przydatne.
Podziękowania należą się do tego posta na blogu, który mówił o tej metodzie, a także łączył się z tą pomocną, ale raczej trudną do znalezienia notatką techniczną Apple .
źródło
Co dziwne, teraz jest inna opcja, http://revealapp.com/ , która od tego postu jest w otwartej (bezpłatnej) wersji beta. Jak widać to kolejny inspektor wizualny.
EDYCJA 05.04.2014: Ujawnienie jest poza wersją beta i nie jest już darmowe. Istnieje jednak 30-dniowa wersja próbna.
źródło
To pytanie jest stare, ale pozwolę sobie na umieszczenie tutaj informacji o nowym narzędziu, które rozwijam: https://github.com/glock45/iOS-Hierarchy-Viewer
źródło
Aby aktualizować ten wątek, ostatnio bawiłem się z Spark Inspector . To nie jest darmowe, ale jest bardzo przyjemne.
źródło
FLEX Debugger dostarcza widok inspektora w app, który pozwala na modyfikowanie UI w uruchomionej aplikacji. Rejestruje również żądania sieciowe.
https://github.com/Flipboard/FLEX
źródło
Bezpłatnie: po prostu wpisz to w inspektorze:
Komercyjne: http://revealapp.com/ Testowałem wersję beta remove, była dobra, chociaż ma błędy. Kolejne narzędzie komercyjne: http://sparkinspector.com/ działa bezproblemowo.
źródło
Szybki 4.
iOS :
macOS :
Użycie (w debugerze):
po myView.dump()
źródło
To zrzuca wszystko w oknie debugowania. (Trudne do odczytania) :( Praca na iOS 10, Xcode 8.3.3
źródło
Zatwierdzona odpowiedź już nie działa dla mnie, używając Xcode 8 i Swift 2.3. Oto, co działa dla mnie:
po UIApplication.sharedApplication().keyWindow?.recursiveDescription()
źródło
W przypadku Swift / Xcode 10 wprowadź to w konsoli debugowania:
Wyświetli rekurencyjną hierarchię dla dowolnego podanego
UIView
.(Kredyt: Jak debugować hierarchię widoków za pomocą recursiveDescription )
źródło