UIView的层次结构–code

时间:2021-08-18 14:45:03

转:http://blog.dongliwei.cn/archives/uiview-tree-code

// 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

{

NSMutableString *outstring = [[NSMutableString alloc] init];

[self dumpView: self.window atIndent:0 into:outstring];

return [outstring autorelease];

}

// Show the tree

- (void)logViewTreeForMainWindow

{

//  CFShow([self displayViews: self.window]);

ATLogInfo(@"The view tree:\n%@", [self displayViews:self.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