我正在尝试编写一个文本文件,其中包含屏幕中包含的所有视图的名称。例如
我有一个UIView
我有2 UIButtons
所以文件应该如下所示..
UIWindow
UIView
UIButton
UIButtonLabel
UIButton
UIButtonLabel
_UILayoutGuide
_UILayoutGuide
这就是我试图做的事情,但我无法实现上述等级。
-(void) writeViewHierarchyForView:(UIView *)aView inString:( NSMutableString *)str
{
//NSMutableString *str = [[NSMutableString alloc] init];
NSLog(@"title Text = %@", aView.titleText);
if(nil == aView.children){
[str appendString:@"\n"];
return;
}
else{
for(UIView *view in aView.subview){
[str appendString:@"\n\t"];
[str appendString:view.name];
NSLog(@"%@",view.name);
[str appendString:@"\t"];
[self writeViewHierarchyForView:view inString:str];
}
}
}
这不是我在任何项目中使用的东西,只是为了好玩而做。 任何建议都会很棒。
答案 0 :(得分:2)
您可能无法使用以下代码向应用程序商店提交应用程序(听起来您根本不需要),因为它是未记录的私有API,但您可以在调试中使用它:
NSLog(@"%@", [self.view valueForKey:@"recursiveDescription"]);
您还可以在LLDB控制台中使用recursiveDescription
进行断点时的调试:
po [someView recursiveDescription]