iOS遍歷打印所有子視圖

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = UIColor.whiteColor;
    
    UILabel *label = [UILabel new];
    UIButton *button = [UIButton new];
    
    UIImageView *imageView = [UIImageView new];
    UIView *view1 = [UIView new];
    UIView *view2 = [UIView new];
    
    [self.view addSubview:label];
    [self.view addSubview:button];
    [button addSubview:imageView];
    [imageView addSubview:view1];
    [imageView addSubview:view2];
    
    // 打印所有子視圖
 [self getSub:self.view andLevel:1];
    
}

// 遞歸獲取子視圖
- (void)getSub:(UIView *)view andLevel:(int)level {
    NSArray *subviews = [view subviews];
    
    // 如果沒(méi)有子視圖就直接返回
    if ([subviews count] == 0) return;
    
    for (UIView *subview in subviews) {
        
        // 根據(jù)層級(jí)決定前面空格個(gè)數(shù),來(lái)縮進(jìn)顯示
        NSString *blank = @"";
        for (int i = 1; i < level; i++) {
            blank = [NSString stringWithFormat:@"  %@", blank];
        }
        
        // 打印子視圖類名
        NSLog(@"%@%d: %@", blank, level, subview.class);
        
        // 遞歸獲取此視圖的子視圖
        [self getSub:subview andLevel:(level+1)];
        
    }
}

打印結(jié)果

image.png

參考:https://blog.csdn.net/Cloudox_/article/details/64132566

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 引 有時(shí)候搞研究啊,需要找找一個(gè)View有哪些子View,主要是分別是什么類型的,這種事情用遞歸來(lái)做比較好。 我稍...
    Cloudox_閱讀 6,191評(píng)論 0 3
  • 有時(shí)候搞研究啊,需要找找一個(gè)View有哪些子View,主要是分別是什么類型的,這種事情用遞歸來(lái)做比較好。 我稍微將...
    階梯閱讀 1,368評(píng)論 0 1
  • (轉(zhuǎn))原文鏈接:https://blog.csdn.net/huangqili1314/article/detai...
    谷哥得小弟閱讀 3,943評(píng)論 0 66
  • 包含的重點(diǎn)內(nèi)容:JAVA基礎(chǔ)JVM 知識(shí)開(kāi)源框架知識(shí)操作系統(tǒng)多線程TCP 與 HTTP架構(gòu)設(shè)計(jì)與分布式算法數(shù)據(jù)庫(kù)知...
    消失er閱讀 4,543評(píng)論 1 10
  • 本系列出于AWeiLoveAndroid的分享,在此感謝,再結(jié)合自身經(jīng)驗(yàn)查漏補(bǔ)缺,完善答案。以成系統(tǒng)。 Java基...
    濟(jì)公大將閱讀 1,610評(píng)論 1 6

友情鏈接更多精彩內(nèi)容