IT story

iOS에서 뷰 계층을 어떻게 검사합니까?

hot-time 2020. 5. 27. 07:40
반응형

iOS에서 뷰 계층을 어떻게 검사합니까?


iOS 앱의 뷰 계층을 검사하는 GUI 도구가 있습니까? Webkit의 웹 관리자 또는 유사한 도구에 대해 생각하고 있습니다. 위치 나 크기가 잘못되었거나 자식이 부모에 제대로 포함되지 않은 뷰와 같은 레이아웃 문제를 디버깅하려고합니다. 현재 나는 이러한 다양한 조건을 손으로 테스트하거나 다른 뷰에서 다른 배경색을 설정하는 주장을 추가해야하며 상상할 수 있듯이 실제로는 지루한 방법입니다.

나는 Instruments 's UI recorder를 보았지만 UI 액션 만 기록하고 재생합니다. 어쨌든 Mac 앱에서만 작동합니다.

더 나은 해결책이 있습니까?


Xcode 6에는 Reveal App 및 Spark Inspector와 같은 3D 뷰 계층 검사 기능이 내장되어 있습니다.

여기에 이미지 설명을 입력하십시오

앱이 실행되는 동안 "디버그보기 계층"버튼을 클릭하여 실행을 일시 중지하고 현재 시점에서보기를 검사하십시오.

여기에 이미지 설명을 입력하십시오

Apple 문서에 대한 추가 정보 .


GUI보기 검사 도구가 있는지 모르겠지만 UIView의 디버깅 방법에 대해 운이 좋았습니다. -recursiveDescription

디버거에서 프로그램을 일시 중지하고이를 GDB에 입력하면 (편집 : LLDB에서도 작동)

po [[UIWindow keyWindow] 재귀 설명]

전체 뷰 계층 구조를 출력합니다. 특정보기에서 호출하여 해당보기의보기 계층 구조를 인쇄 할 수도 있습니다.

나가는 정보를 훑어 보는 것이 약간 지루할 수 있지만, 나에게 유용한 것으로 판명되었습니다.

크레디트는 이 방법에 대해 이야기하고 도움이되었지만 애플 테크 노트를 찾기가 어려운 이 블로그 게시물 로갑니다 .


앱 스크린 샷 공개

이상하게도 이제는 이 게시물을 기준으로 공개 (무료) 베타 버전 http://revealapp.com/ 옵션이 있습니다 . 보시다시피 또 다른 시각적 검사기입니다.

편집 2014-04-05 : 공개는 베타 버전이 아니며 더 이상 무료가 아닙니다. 그러나 30 일의 평가판이 있습니다.


이 질문은 오래되었지만 내가 개발 한 새로운 도구에 대한 정보를 여기에 넣도록하겠습니다. https://github.com/glock45/iOS-Hierarchy-Viewer 여기에 이미지 설명을 입력하십시오


여기에 이미지 설명을 입력하십시오

이 스레드를 최신 상태로 유지하기 위해 최근에 Spark Inspector를 사용하고 있습니다. 무료는 아니지만 매우 좋습니다.


무료 : 그냥 관리자에 입력하십시오 :

po [[UIWindow keyWindow] recursiveDescription]

Commercial : http://revealapp.com/ I tested beta version of revealapp, it was good though has bugs. Another Commercial tool : http://sparkinspector.com/ it's working seamless.


The FLEX Debugger provides an in app view inspector that allows you to modify the UI in a running app. It also logs network requests.

https://github.com/Flipboard/FLEX

여기에 이미지 설명을 입력하십시오


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"))))
   }
}

Usage (in debugger): po myView.dump()


This dumps all in debug window.(Hard to read tho) :( Working on iOS 10, Xcode 8.3.3

po UIApplication.shared.keyWindow?.recursiveDescription()

The approved answer no longer works for me, using Xcode 8 and Swift 2.3. Here's what does work for me:

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


For swift/Xcode 10, enter this into the debug console:

po yourView.value(forKey: "recursiveDescription")!

주어진에 대한 재귀 계층 구조를 인쇄합니다 UIView.

(Credit : recursiveDescription을 사용하여 뷰 계층을 디버깅하는 방법 )

참고 URL : https://stackoverflow.com/questions/5150186/how-do-i-inspect-the-view-hierarchy-in-ios

반응형