递归显示视图层次结构
来源:互联网 发布:javascript的设计模式 编辑:程序博客网 时间:2024/06/06 00:14
// 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.view.window atIndent:0 into:outstring];
return [outstring autorelease];
}
//=========================================================
// Return an exhaustive descent of the view's subviews
-(NSArray *)allSubviews:(UIView *)aView
{
NSArray *results = [aView subviews];
NSLog(@"%d", [results count]);
for (UIView *eachView in [aView subviews])
{
NSArray *riz = [self allSubviews:eachView];
if (riz) results = [results arrayByAddingObjectsFromArray:riz];
}
return results;
}
// Return all views throughout the application
-(NSArray *)allApplicationViews
{
NSArray *results = [[UIApplication sharedApplication] windows];
for (UIWindow *window in [[UIApplication sharedApplication] windows])
{
NSArray *riz = [self allSubviews:window];
if (riz) results = [results arrayByAddingObjectsFromArray: riz];
}
return results;
}
// Return an array of parent views from the window down to the view
-(NSArray *)pathToView:(UIView *)aView
{
NSMutableArray *array = [NSMutableArray arrayWithObject:aView];
UIView *view = aView;
UIWindow *window = aView.window;
while (view != window)
{
view = [view superview];
[array insertObject:view atIndex:0];
}
return array;
}
// Show the tree
- (void) displayViews
{
NSLog(@"%@",[self displayViews: self.view.window]);
//printf("Subviews of the main view:\n");
//NSLog(@"%@", [self allSubviews:self.view]);
printf("Path to each main subview:\n");
for (UIView *eachView in [self allSubviews:self.view])
NSLog(@"%@", [self pathToView:eachView]);
// More views than you could dream of!
//printf("\nAll window subviews:\n");
//NSLog(@"%@", [self allApplicationViews]);
}
- 递归显示视图层次结构
- 递归显示视图层次结构
- ios视图层次结构
- 视图的层次结构
- ios视图层次结构
- 视图的层次结构
- ios视图层次结构
- ios视图层次结构
- iOS视图层次结构
- IOS视图层次结构
- ios 调试显示视图view的层次结构
- html 显示层次结构
- 显示层次结构
- 建立视图层次结构树,学习用
- iOS视图层次结构,继承的关系
- linux递归降序便利目录层次结构
- 递归降序遍历目录层次结构
- 递归显示目录结构
- Android程序的安全系统 root 工具
- vsftpd添加用户后无法登录解决办法
- C语言学习_006_C控制语句:循环
- C++文件操作详解(ifstream、ofstream、fstream)
- HTML5 WebSocket 技术介绍
- 递归显示视图层次结构
- 如何看职业规划三要素
- Python的os模块常用属性及方法介绍
- LCD驱动调试中部分常见问题的分析及解决办法
- 自学风雨路(代码学习,附上运行截图)《简易在线聊天系统》
- 三星辉煌藏隐忧 太依赖Android系统
- Shell中脚本变量和函数变量的作用域
- 线性表之顺序表示及实现
- 指针和数组