遍历子视图
来源:互联网 发布:南风知我意陆西洲免费 编辑:程序博客网 时间:2024/04/29 08:23
开发过程中,我们经常需要查看一个视图及其子视图的层级关系,这里提供两个方法:
1)递归遍历
对于一个视图rootview,我们可以通过UIView的方法subviews获取到它的直接子视图,
这里有一点需要注意,[rootview subviews]返回的子视图数组是rootview的直接子视图,即数组里面每个视图在视图层级树中与rootview有直接的父子关系,且子视图数组里面并不包含rootview本身(注意和数学中集合的子集进行区别),数组中的顺序从小到大对应视图层级的从底部(bottom)到顶端(top)
基于以上说明,我们可以利用递归的思想遍历获取rootview的所有直接和非直接的子视图
/** *@brief递归遍历 * *@param rootView 当前视图节点 *@param floor 当前视图节点在视图层级树中的层数索引 */- (void)view:(UIView *)rootView floor:(NSInteger)floor{ NSLog(@"<%@>-第%i层",[rootView class],floor); floor++; for (UIView *v in [rootView subviews]) { [self view:v floor:floor]; }}
2)利用recursiveDescription方法
UIView有一个私用方法recursiveDescription,配合po(print-object)命令可以打印出视图的层级关系
po [rootview recursiveDescription]
- 遍历子视图
- 遍历子视图的子视图
- iOS遍历打印所有子视图
- 遍历UIView的所有子视图
- iOS遍历视图里的所有子视图
- iOS 遍历所有子视图subviews的2种方法
- 遍历子视图中某个类型控件方法
- 遍历UIView子视图,找出按钮控件,如果点击在范围内则返回当前控件
- IOS_遍历系统控件子视图进行修改方案(UIWebView禁止滚动和回弹)
- Map集合视图遍历
- 子视图自适应属性
- cocoa查找子视图
- ios 子视图
- viewWithTag子视图不正确
- UIView管理子视图
- iOS删除子视图
- 添加子视图
- 随笔 删除子视图
- atoi,atol,strtod,strtol,strtoul详解
- java去除字符串中的空格、回车、换行符、制表符
- UIWebView加载Loading...两种方法
- 如何编译Android源码的单独模块
- android学习
- 遍历子视图
- 百度地图新手教程1
- mysql中查询表中某个字段重复出现次数
- node.js 操作Cookies
- 如果你把这篇文章读透,可能你的人生从此会变得有一些不同
- Ajax 入门实例
- Hough变换(openCV的cvHoughLines2)
- ECSHOP模板 {insert name='history'}的用法
- sqlServer 中使用sql语句实现固定分页功能