遍历输出所有子视图(View)
2016-08-15 22:02
183 查看
传入一个View,可以获取传入视图的所有子视图,写入桌面,可以在火狐浏览器下查看
/** * 程序获得了焦点就会自动调用这个方法(只要程序获得了焦点,所有控件才能接收触摸事件) */ - (void)applicationDidBecomeActive:(UIApplication *)application { NSString *xml = [self digView:self.window]; [xml writeToFile:@"/Users/aplle/Documents/window.xml" atomically:YES]; } - (NSString *)digView:(UIView *)view { if ([view isKindOfClass:[UITableViewCell class]]) return @""; // 1.初始化 NSMutableString *xml = [NSMutableString string]; // 2.标签开头 [xml appendFormat:@"<%@ frame=\"%@\"", view.class, NSStringFromCGRect(view.frame)]; if (!CGPointEqualToPoint(view.bounds.origin, CGPointZero)) { [xml appendFormat:@" bounds=\"%@\"", NSStringFromCGRect(view.bounds)]; } if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView *scroll = (UIScrollView *)view; if (!UIEdgeInsetsEqualToEdgeInsets(UIEdgeInsetsZero, scroll.contentInset)) { [xml appendFormat:@" contentInset=\"%@\"", NSStringFromUIEdgeInsets(scroll.contentInset)]; } } // 3.判断是否要结束 if (view.subviews.count == 0) { [xml appendString:@" />"]; return xml; } else { [xml appendString:@">"]; } // 4.遍历所有的子控件 for (UIView *child in view.subviews) { NSString *childXml = [self digView:child]; [xml appendString:childXml]; } // 5.标签结尾 [xml appendFormat:@"</%@>", view.class]; return xml; }
相关文章推荐
- Linux C :遍历输出指定目录下的所有文件
- php循环遍历目录,输出所有文件名
- php遍历目录输出目录及其下的所有文件
- 使用php scandir()函数遍历文件夹并输出所有文件路径
- 使用php scandir()函数遍历文件夹并输出所有文件路径
- 遍历当前目录下并输出所有文件
- 改变tableView中的cell选中的颜色和背景颜色 从父视图上删除所有的子视图
- Linux C :遍历输出指定目录下的所有文件
- [self removeAllSubviews]; // 删除所有子视图(包括 selfl.view) 所以,要慎用
- 定义一个100长度的整型数组,使用rand函数生产随机数对每个元素进行赋值,顺序遍历该数组,输出所有值大于50的数
- MVC如何将用户控件(分部视图,RenderPartial,ViewUserControl)内容转换为字符串并输出
- C#遍历所有磁盘文件,并输出文件的绝对路径
- Linux C :遍历输出指定目录下的所有文件
- XPath遍历输出XML所有叶子节点
- java遍历给定目录,树形结构输出所有文件,包括子目录中的文件
- Linux C :遍历输出指定目录下的所有文件
- Linux C :遍历输出指定目录下的所有文件
- VC:遍历文件夹下所有文件和文件夹(CFileFind类、树视图控件、图像链表、HTREEITEM句柄、TV_INSERTSTRUCT 结构体)
- php遍历目录输出目录及其下的所有文件示例
- 遍历目录下的所有文件,计算文件的md5并输出