忘了是(=@__@=)哪里?来的代码了。用了好久了,之前同事也给我推荐过,非常方便的查看自己的view的层次结构,继承关系。
对苦苦调试UI的你也许有点启发。
// 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