Depuração do tamanho da visualização do cabeçalho iOS 7

Esta noite eu tive que alterar o tamanho de uma visualização no iOS 7. Como a visualização estava abaixo da barra de navegação (o que não foi um problema até 7), eu precisava ver onde a barra de navegação do iOS 6 ficaria, mas também escondê-la view (eu percebo que, dado o tamanho estático das barras de navegação no iOS, isso poderia ser feito de forma mais simples, mas o exemplo é dado mais para demonstração do que qualquer outra coisa).

CGRect debugFrame = self.navigationBar.frame;
UIView *debugView = [[UIView alloc] initWithFrame:debugFrame];
[debugView debugMySize];
[self.view addSubview:debugView];
self.navigationBar.hidden = YES;

debugMySizeé um método de categoria que incluí que exibe uma borda colorida aleatória de 1pt ao redor de qualquer UIView. Este é o código que você pode adicionar à categoria UIView + ViewHighlighter para fazer isso:

-(void) debugMySize{
int red = rand() % 255;
int green = rand() % 255;
int blue = rand() % 255;
UIColor* myColor = [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:1.0];

self.layer.borderColor = [myColor CGColor];
self.layer.borderWidth = 1;
}

EDITAR

Recentemente, tive que encontrar uma subvisualização que estava causando problemas, mas não queria ter o trabalho de adicionar debugMySize em cada subvisualização para descobrir qual era o culpado. Então, adicionei este código à categoria:

-(void)debugSubviews{
void (^block)(id) = ^(UIView *subview) {
[subview debugMySize];
[subview debugSubviews];
};
[(self.subviews) enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
block
(obj);
}];
}

-(void)debugMyAndAllSubviewSizes {
[self debugMySize];
[self debugSubviews];
}

O primeiro método percorre todas as subvisualizações do UIView atual, chama debugMySizee depois ocorre novamente. O segundo método apenas chama o primeiro e debugMySizeno próprio UIView. Desta forma, você obtém uma bela caixa ao redor de cada subvisualização, das subvisualizações da subvisualização e assim por diante até que não haja mais nada.