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
'IT story' 카테고리의 다른 글
PHP 7에서 ext-curl 확장을 어떻게 설치합니까? (0) | 2020.05.27 |
---|---|
왜 String.Format을 사용합니까? (0) | 2020.05.27 |
Android에서 EditText의 문자를 제한하기 위해 InputFilter를 어떻게 사용합니까? (0) | 2020.05.27 |
fs : 상위 폴더는 어떻게 찾습니까? (0) | 2020.05.27 |
Xcode UI 테스트의 테스트 케이스에서 지연 / 대기 (0) | 2020.05.27 |