जैसा कि Uli ने नीचे टिप्पणी की है, ऐसा करने का उचित तरीका layoutSubviews
छवि को ओवरराइड और लेआउट करना है।
यदि, किसी कारण से, आप उप-प्रकार और ओवरराइड नहीं कर सकते हैं layoutSubviews
, तो अवलोकन bounds
करना चाहिए, भले ही गंदे होने पर भी काम करना चाहिए। इससे भी बदतर, अवलोकन के साथ एक जोखिम है - Apple UIKit कक्षाओं पर KVO के कामों की गारंटी नहीं देता है। 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:
}
}