zoukankan      html  css  js  c++  java
  • IOS @param view 需要获取层级结构的view

    - (void)applicationDidBecomeActive:(UIApplication *)application
    {
        NSString *str =  [self digView:self.window];
        [str writeToFile:@"/Users/apple/Desktop/ios6.xml" atomically:YES];
    }
    
    /**
     *  返回传入veiw的所有层级结构
     *
     *  @param view 需要获取层级结构的view
     *
     *  @return 字符串
     */
    - (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;
    }
  • 相关阅读:
    2020北航OO第二单元总结
    2020北航OO第一单元总结
    OO结课了,狂喜
    BUAAOO第三单元总结
    BUAAOO第二单元代码分析
    BUAAOO第一单元代码分析
    OO第四次博客作业
    OO第三次博客作业
    OO第二次博客作业
    OO第一次博客作业
  • 原文地址:https://www.cnblogs.com/liuwj/p/6596779.html
Copyright © 2011-2022 走看看