tutorial que framework ios cocoa-touch uikit

framework - que es uikit ios



¿Cómo inspecciono la jerarquía de vistas en iOS? (10)

¿Hay alguna herramienta de GUI que inspeccione la jerarquía de vistas de una aplicación de iOS? Estoy pensando en el inspector web de Webkit o herramientas similares. Estoy buscando depurar problemas de diseño, como las vistas que tienen una posición o tamaño incorrectos, o que un niño no se encuentre correctamente en su elemento principal. Actualmente tengo que añadir afirmaciones que prueban estas diversas condiciones a mano, o establecer diferentes colores de fondo en diferentes vistas, y como se puede imaginar, esa es una manera realmente tediosa de hacerlo.

Miré la UI recorder de Instruments, pero eso solo registra y reproduce las acciones de IU` y, en cualquier caso, funciona solo para las aplicaciones de Mac.

¿Hay una mejor solución?




Esto descarga todo en la ventana de depuración (difícil de leer) :( Trabajando en iOS 10, Xcode 8.3.3

po UIApplication.shared.keyWindow?.recursiveDescription()


Gratis: Simplemente escriba esto en el inspector:

po [[UIWindow keyWindow] recursiveDescription]

Comercial: http://revealapp.com/ Probé la versión beta de revealapp, aunque tenía errores. Otra herramienta comercial: http://sparkinspector.com/ está funcionando sin problemas.


La respuesta aprobada ya no funciona para mí, usando Xcode 8 y Swift 2.3. Esto es lo que funciona para mí:

po UIApplication.sharedApplication().keyWindow?.recursiveDescription()


No sé si hay una herramienta de inspección de vista de GUI, pero he tenido algo de suerte con el método de depuración en UIView: -recursiveDescription

si detiene el programa en el depurador e ingresa esto en GDB (Editar: también funciona en LLDB)

po [[UIWindow keyWindow] recursiveDescription]

Obtienes una impresión de toda tu jerarquía de vistas. También puede llamarlo en una vista específica para obtener una impresión de la jerarquía de vistas de esa vista.

Puede ser un poco tedioso revisar la información que obtienes, pero me ha resultado útil.

El crédito va a esta publicación de blog que habla sobre este método y también está vinculada a esta útil, pero bastante difícil de encontrar, nota técnica de Apple .


Swift 4.

iOS :

extension UIView { // Prints results of internal Apple API method `recursiveDescription` to console. public func dump() { Swift.print(perform(Selector(("recursiveDescription")))) } }

macOS :

extension NSView { // Prints results of internal Apple API method `_subtreeDescription` to console. public func dump() { Swift.print(perform(Selector(("_subtreeDescription")))) } }

Uso (en el depurador): po myView.dump()


Xcode 6 ahora tiene una inspección de jerarquía de vista 3D integrada como Reveal App e Spark Inspector.

Haga clic en el botón "Depurar jerarquía de vistas" mientras su aplicación se está ejecutando para pausar la ejecución e inspeccionar las vistas en el momento actual.

Más información en la documentación de Apple .


Curiosamente, ahora hay otra opción, http://revealapp.com/ , que a partir de esta publicación se encuentra en una versión beta abierta (gratuita). Como pueden ver, es otro inspector visual.

EDITAR 2014-04-05: Reveal está fuera de Beta y ya no es gratis. Sin embargo, hay una prueba de 30 días.


Solo para mantener este hilo actualizado, he estado jugando recientemente con Spark Inspector . No es gratis, pero es muy agradable.