[转载]UIView的层次结构--code
转载自:http://blog.csdn.net/theonezh/article/details/8216584
?
// 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