Existe-t-il un outil graphique permettant d'inspecter la hiérarchie de vues d'une application iOS? Je pense à l'inspecteur Web de Webkit ou à des outils similaires. Je cherche à résoudre les problèmes de mise en page, tels que les vues mal positionnées ou de taille incorrecte, ou qu'un enfant ne soit pas correctement contenu dans son parent. Actuellement, je dois ajouter des assertions qui testent manuellement ces différentes conditions, ou définissent différentes couleurs d'arrière-plan sur différentes vues, et comme vous pouvez l'imaginer, c'est une façon très fastidieuse de procéder.
J'ai consulté le UI recorder
d'Instruments, mais celui-ci n'enregistre et ne lit que les actions de l'interface utilisateur et ne fonctionne en aucun cas pour les applications Mac.
Y a-t-il une meilleure solution?
L'inspection de la hiérarchie des vues 3D est désormais intégrée à Xcode 6, comme Reveal App et Spark Inspector.
Cliquez sur le bouton "Hiérarchie des vues de débogage" lorsque votre application est en cours d'exécution pour suspendre l'exécution et inspecter les vues au moment actuel.
Plus d'infos sur Documentation Apple .
Je ne sais pas s'il existe un outil d'inspection de la vue dans l'interface graphique, mais j'ai eu un peu de chance avec la méthode de débogage sous UIView: -recursiveDescription
si vous mettez le programme en pause dans le débogueur et que vous le saisissez dans GDB (Edit: fonctionne également en LLDB)
po [[UIWindow keyWindow] récursiveDescription]
Vous obtenez une impression de la totalité de votre hiérarchie de vues. Vous pouvez également l'appeler sur une vue spécifique pour obtenir une impression de la hiérarchie des vues de cette vue.
Il peut être un peu fastidieux de parcourir les informations que vous en retirez, mais cela m’a été utile.
Le crédit va à cet article de blog qui a parlé de cette méthode et également lié à cette aide, mais plutôt difficile à trouver Apple Tech note .
Curieusement, il existe maintenant une autre option, http://revealapp.com/ , qui à ce jour est en version bêta ouverte (gratuite). Comme vous pouvez le constater, c'est un autre inspecteur visuel.
EDIT 2014-04-05: Reveal est sorti de la bêta et n'est plus gratuit. Il y a cependant un essai de 30 jours.
Cette question est ancienne mais permettez-moi de mettre ici les informations sur le nouvel outil que je développe: https://github.com/glock45/iOS-Hierarchy-Viewer
Juste pour garder ce fil à jour, j'ai récemment joué avec Spark Inspector . Ce n'est pas gratuit, mais c'est très gentil.
Le FLEX Debugger fournit un inspecteur de vue d'application qui vous permet de modifier l'interface utilisateur d'une application en cours d'exécution. Il enregistre également les demandes de réseau.
Gratuit: il suffit de taper ceci dans inspecteur:
po [[UIWindow keyWindow] recursiveDescription]
Commercial: http://revealapp.com/ J'ai testé la version bêta devevelapp, c'était bon mais il a des bugs . Un autre outil commercial: http://sparkinspector.com/ ça marche sans problème. .
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"))))
}
}
Utilisation (dans le débogueur): po myView.dump()
Cela vide tout dans la fenêtre de débogage. (Difficile à lire cependant) :( Travaillant sur iOS 10, Xcode 8.3.3
po UIApplication.shared.keyWindow?.recursiveDescription()
Pour Swift/Xcode 10, entrez ceci dans la console de débogage:
po yourView.value(forKey: "recursiveDescription")!
Il affichera une hiérarchie récursive pour toute UIView
donnée.
(Crédit: Comment déboguer votre hiérarchie de vues à l'aide de recursiveDescription )