[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