[self logViewTreeForMainWindow];
// Recursively travel down the view tree, increasing the indentation level for children
- (void)dumpView:(UIView *)aView atIndent:(int)indent into:(NSMutableString *)outstring
{
for (int i = 0; i < indent; i++) [outstring appendString:@"--"];
[outstring appendFormat:@"[%2d] %@\n", indent, [[aView class] description]];
for (UIView *view in [aView subviews])
[self dumpView:view atIndent:indent + 1 into:outstring];
}
// Start the tree recursion at level 0 with the root view
- (NSString *) displayViews: (UIView *) aView
{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
NSMutableString *outstring = [[NSMutableString alloc] init];
[self dumpView: window atIndent:0 into:outstring];
return outstring;
}
// Show the tree
- (void)logViewTreeForMainWindow
{
// CFShow([self displayViews: self.window]);
UIWindow *window = [UIApplication sharedApplication].keyWindow;
NSLog(@"The view tree:\n%@", [self displayViews:window]);
}
具体用法就是在你想知道你的view的层次的时候,调用一下这个logViewTreeForMainWindow函数就可以了。
比方说:下面这个就是我的打印结果。非常清晰明了!
[ 0] UIWindow
--[ 1] UILayoutContainerView
----[ 2] UINavigationTransitionView
------[ 3] UIViewControllerWrapperView
--------[ 4] UIView -----rootViewController
----------[ 5] UITableView
------------[ 6] ServerViewCell_iphone
--------------[ 7] UITableViewCellContentView
------------[ 6] ServerViewCell_iphone
--------------[ 7] UITableViewCellContentView
----[ 2] UINavigationBar
------[ 3] UINavigationBarBackground
------[ 3] UILabel
------[ 3] UIButton
--------[ 4] UIImageView
--------[ 4] UIImageView
--[ 1] UIView ----backView
--[ 1] UITransitionView
----[ 2] UIView ----CameraPlayerView.
------[ 3] UIView for zoom.--frameView.
--------[ 4] UIImageView
------[ 3] UIImageView
------[ 3] UILabel
--------[ 4] UIImageView
------[ 3] UIImageView
------[ 3] UINavigationBar
--------[ 4] UINavigationBarBackground
--------[ 4] UINavigationItemView
----[ 2] UILayoutContainerView
------[ 3] UINavigationTransitionView -----recordVideoView
--------[ 4] UIViewControllerWrapperView
----------[ 5] UIView
------------[ 6] UITableView
--------------[ 7] UIImageView
--------------[ 7] UIImageView
------------[ 6] UIToolbar
--------------[ 7] _UIToolbarBackground
--------------[ 7] UISegmentedControl
------[ 3] UINavigationBar
--------[ 4] UINavigationBarBackground
--------[ 4] UILabel
--------[ 4] UIButton
----------[ 5] UIImageView
----------[ 5] UIButtonLabel
标签:--------,code,--,UIImageView,outstring,------,view,UIView
From: https://blog.51cto.com/u_16124099/6330596