有時候我們開發(fā)會需要獲取視圖上的子控件
我這里貼一個簡單的方法谷炸,而且層級關(guān)系明了
pragma mark - 獲取所有子控件
遞歸獲取子視圖
-(void)getSub:(UIView *)view andLevel:(int)level
{
NSArray *subviews = [view subviews];
// 如果沒有子視圖就直接返回
if ([subviews count] == 0) return;
for (UIView *subview in subviews)
{
// 根據(jù)層級決定前面空格個數(shù)顺又,來縮進顯示
NSString *blank = @"";
for (int i = 1; i < level; i++)
{
blank = [NSString stringWithFormat:@" %@", blank];
}
// 打印子視圖類名
NSLog(@"%@%d: %@", blank, level, subview.class);
// 遞歸獲取此視圖的子視圖
[self getSub:subview andLevel:(level+1)];
}
}
調(diào)用這個方法
// 打印所有子視圖
[self getSub:self.navigationController.navigationBar andLevel:1];