У меня есть категория, которая добавляет следующий метод в 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;
}