遍历输出所有子视图(View)
2024-09-12 12:42:41
传入一个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;
}
最新文章
- 9.28 Java基本数据类型作业
- Centos7安装配置NFS服务和挂载
- JEECMS v8 发布,java 开源 CMS 系统
- 【转】Oracle RAC 环境下的连接管理
- linux 静态库、共享库
- Apache搭建多个站点方法详解
- 如何使页面滚动条移动到指定元素element的位置处?
- 联通光纤上网配置+华为HG8240光猫+TL-WR842N
- android N刷机
- 【移动开发】WIFI热点通信(一)
- JavaScript电话号码正则
- (原)ubuntu上安装nvidia及torch的nccl
- 前端面试之angular JS
- IP地址字符串与int整数之间的无损转化
- C# 仿360悬浮球开发demo程序
- Graph Without Long Directed Paths CodeForces - 1144F (dfs染色)
- Mysql 查看连接数,状态 最大并发数
- Dubbo 服务集群容错配置
- BZOJ2587 : [Ceoi2011]Team
- JS 从HTML页面获取自定义属性值