几周前,我在某处发现了一段代码,允许使用 NSLOG(应用程序创建的所有 View 、 subview 和对象的分层列表)转储到终端,但我再也找不到这段代码了?
你们知道怎么做吗?
预先感谢您的帮助!
最佳答案
我有一个类别,为此类事情向 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:列出我的应用程序创建的所有 View 和 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1816185/