Как я могу циклично выполниться посредством всех подпредставлений UIView, и их подпредставлений и их подпредставлений?
Используйте рекурсию:
// UIView+HierarchyLogging.h
@interface UIView (ViewHierarchyLogging)
- (void)logViewHierarchy;
@end
// UIView+HierarchyLogging.m
@implementation UIView (ViewHierarchyLogging)
- (void)logViewHierarchy
{
NSLog(@"%@", self);
for (UIView *subview in self.subviews)
{
[subview logViewHierarchy];
}
}
@end
// In your implementation
[myView logViewHierarchy];
Я написал категорию некоторое время назад для отладки некоторых представлений.
IIRC, опубликованный код - это тот, который сработал. Если нет, он укажет вам правильное направление. Используйте на свой страх и риск и т.д.
Код, опубликованный в , этот ответ просматривает все окна, все представления и все их подпредставления. Он использовался для выгрузки распечатки иерархии представлений в NSLog, но вы можете использовать его как основу для любого обхода иерархии представлений. Он использует рекурсивную функцию C для обхода дерева представлений.