几周前,我在某处找到了一个代码,该代码允许使用NSLOG将其转储到终端,NSLOG是由应用程序创建的所有视图,子视图和对象的分层列表,但现在找不到此代码了吗?

你们知道怎么做吗?

在此先感谢您的帮助!

最佳答案

我有一个类别,可以为此类事情向UIView添加以下方法:

- (NSArray *) allSubviews {
    NSMutableArray              *subviews = [self.subviews mutableCopy];

    for (UIView *view in self.subviews) {
        [subviews addObjectsFromArray: [view allSubviews]];
    }
    return subviews;
}


然后,您可以NSLog()返回的数组。另外,更多细节,您可以使用以下方法:

- (NSString *) hierarchyToStringWithLevel: (int) level {
    NSMutableString             *results = [NSMutableString stringWithString: @"\n"];

    for (int i = 0; i < level; i++) {
        [results appendFormat: @"-\t"];
    }

    [results appendFormat: @"[%@, 0x%X], %@", [self class], self, NSStringFromCGRect(self.frame)];
    for (UIView *child in self.subviews) {
        [results appendFormat: @"%@", [child hierarchyToStringWithLevel: level + 1]];
    }
    return results;
}

关于iphone - IPHONE:列出我的应用创建的所有 View 和 subview ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1816185/

10-12 05:39