Uli'nin aşağıda yorumladığı gibi, bunu yapmanın doğru yolu layoutSubviews
oradaki imageView'ları geçersiz kılmak ve yerleştirmektir.
Herhangi bir nedenle, alt sınıflara girip geçersiz kılamıyorsanız layoutSubviews
, gözlem yapmak, kirliyken bounds
bile işe yaramalıdır. Daha da kötüsü, gözlemlemeyle ilgili bir risk var - Apple, KVO'nun UIKit sınıflarında çalışacağını garanti etmez. Apple mühendisi ile yapılan tartışmayı buradan okuyun: İlişkili bir nesne ne zaman piyasaya sürülür?
orijinal cevap:
Anahtar / değer gözlemlemeyi kullanabilirsiniz:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
ve uygulayın:
- (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:
}
}