返回顶部

收藏

查询子视图

更多

[view subViews]方法只能返回给定视图的直接子视图。而视图的每个子视图又能包含自己的子视图。这份代码提供几个函数,能查询给定视图的所有直接和间接子视图。

// Return an exhaustive descent of the view's subviews 
NSArray *allSubviews(UIView *aView)
{
    NSArray *results = [aView subviews];
    for (UIView *eachView in [aView subviews]) {
        NSArray *riz = 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 = 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; 
}
//该片段来自于http://outofmemory.cn

标签:objective-c,手机开发

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2016-05-05 14:02:14 关于NSRunLoop和NSTimer的深入理解
  2. Draveness 发表 2016-08-02 15:13:39 如何实现 iOS 中的 Associated Object
  3. Draveness 发表 2016-08-31 13:57:38 从 Auto Layout 的布局算法谈性能
  4. airfly 发表 2014-07-01 13:37:07 Objective-C中的Class(类类型),Selector(选择器SEL),函数指针(IMP)
  5. 博主 发表 2017-04-21 15:00:06 Modern Objective-C
  6. One Coder 发表 2014-06-19 14:33:39 30岁码农从零单排iOS 第一季 10. 协议
  7. ToFishes 发表 2013-10-29 08:00:47 移动端页面开发参考ppt
  8. 博主 发表 2015-02-11 13:45:14 NSCache
  9. 博主 发表 2014-12-03 00:00:00 COSLayout: An iOS Layout Library
  10. 博主 发表 2014-05-28 01:18:10 手机百度前端工程化之路
  11. Parker Liu 发表 2014-06-11 03:16:33 iOS8+XCode6 : Symbol not found: _NSURLAuthenticati
  12. 庞海礁 发表 2014-11-28 08:57:21 iOS开发中如何更快的实现汉字转拼音

发表评论