Как я могу циклично выполниться посредством всех подпредставлений UIView, и их подпредставлений и их подпредставлений

Как я могу циклично выполниться посредством всех подпредставлений UIView, и их подпредставлений и их подпредставлений?

76
задан Alexander Farber 9 March 2014 в 19:16
поделиться

3 ответа

Используйте рекурсию:

// 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];
120
ответ дан 24 November 2019 в 11:07
поделиться

Я написал категорию некоторое время назад для отладки некоторых представлений.

IIRC, опубликованный код - это тот, который сработал. Если нет, он укажет вам правильное направление. Используйте на свой страх и риск и т.д.

0
ответ дан 24 November 2019 в 11:07
поделиться

Код, опубликованный в , этот ответ просматривает все окна, все представления и все их подпредставления. Он использовался для выгрузки распечатки иерархии представлений в NSLog, но вы можете использовать его как основу для любого обхода иерархии представлений. Он использует рекурсивную функцию C для обхода дерева представлений.

1
ответ дан 24 November 2019 в 11:07
поделиться