Метод ниже создает один или несколько изменяемых массивов, а затем перебирает подпредставления входного представления. При этом он добавляет начальное подпредставление, а затем запрашивает, существуют ли какие-либо подпредставления этого подпредставления. Если это правда, он снова вызывает себя. Это происходит до тех пор, пока не будут добавлены все представления иерархии.
-(NSArray *)allSubs:(UIView *)view {
NSMutableArray * ma = [NSMutableArray new];
for (UIView * sub in view.subviews){
[ma addObject:sub];
if (sub.subviews){
[ma addObjectsFromArray:[self allSubs:sub]];
}
}
return ma;
}
Звоните используя:
NSArray * subviews = [self allSubs:someView];