Jak skomentował Uli poniżej, właściwym sposobem na to jest nadpisanie layoutSubviews
i rozmieszczenie tam imageViews.
Jeśli z jakiegoś powodu nie możesz podklasować i przesłonić layoutSubviews
, obserwacja bounds
powinna działać, nawet gdy jesteś trochę brudny. Co gorsza, istnieje ryzyko z obserwacją - Apple nie gwarantuje, że KVO działa na klasach UIKit. Przeczytaj dyskusję z inżynierem Apple tutaj: Kiedy powiązany obiekt zostanie zwolniony?
oryginalna odpowiedź:
Możesz użyć obserwacji klucz-wartość:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
i wdrożyć:
- (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:
}
}