Como Uli comentou abaixo, a maneira correta de fazer isso é sobrescrever layoutSubviews
e fazer o layout dos imageViews lá.
Se, por algum motivo, você não pode criar subclasses e sobrescrever layoutSubviews
, a observação bounds
deve funcionar, mesmo quando for meio suja. Pior ainda, há um risco em observar - a Apple não garante que o KVO funcione nas classes UIKit. Leia a discussão com o engenheiro da Apple aqui: Quando um objeto associado é lançado?
resposta original:
Você pode usar a observação de valores-chave:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
e implementar:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
if (object == yourView && [keyPath isEqualToString:@"bounds"]) {
// do your stuff, or better schedule to run later using performSelector:withObject:afterDuration:
}
}