我们可以用树状图来分解iOS屏幕。从主视窗开始,各种视图都是依照特定的层次来排布的。所有的视图都可以有下级,就是子视图。子视图按照由后到前的顺序显示,开发者可以在每个视图上面都只绘制一部分内容,然后将其叠起来实现复杂 的视觉效果。每个视图都有其上级视图和下级视图。可以用递归遍历某个视图的所有下级视图,当从某个上级视图进入其下级视图的时候,会增加缩进级别。
主要代码如下:
- (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];
}
}
- (NSString *)displayViews:(UIView *)aView
{
NSMutableString *outString = [NSMutableString string];
[self dumpView:aView atIndent:0 into:outString];
return outString;
}
也可以对故事版中的视图进行查看
主要代码如下: