Seperti komentar Uli di bawah ini, cara yang tepat untuk melakukannya adalah menimpa layoutSubviews
dan mengatur tata letak imageView di sana.
Jika, karena alasan tertentu, Anda tidak dapat membuat subkelas dan menimpa layoutSubviews
, observasi bounds
seharusnya berhasil, bahkan saat menjadi agak kotor. Lebih buruk lagi, ada risiko dengan mengamati - Apple tidak menjamin KVO berfungsi pada kelas UIKit. Baca diskusi dengan teknisi Apple di sini: Kapan objek terkait dirilis?
jawaban asli:
Anda dapat menggunakan pengamatan nilai kunci:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
dan terapkan:
- (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:
}
}