Как прокомментировал Uli ниже, правильный способ сделать это - переопределить layoutSubviews
и расположить там imageViews.
Если по какой-то причине вы не можете создать подкласс и переопределить layoutSubviews
, наблюдение bounds
должно работать, даже если оно немного грязное. Что еще хуже, существует риск с наблюдением - Apple не гарантирует, что KVO работает на классах UIKit. Прочитайте обсуждение с инженером Apple здесь: Когда будет выпущен связанный объект?
оригинальный ответ:
Вы можете использовать наблюдение значения ключа:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
и внедрить:
- (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:
}
}