Comme Uli a commenté ci-dessous, la bonne façon de le faire est d'écraser layoutSubviews
et la mise en page de la imageViews.
Si, pour une raison quelconque, vous ne pouvez pas sous-classe et écraser layoutSubviews
, en observant bounds
devrait fonctionner, même en étant un peu sale. Pire encore, il y a un risque avec l'observation - Apple ne garantit pas que KVO fonctionne sur UIKit classes. Lire la discussion avec Apple ingénieur ici: Quand un objet associé à sortir?
réponse originale à cette question:
Vous pouvez utiliser la clé-valeur de l'observation:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
et de mettre en œuvre:
- (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:
}
}