Như Uli nhận xét bên dưới, cách thích hợp để làm điều đó là ghi đè layoutSubviews
và bố trí các imageView ở đó.
Nếu vì lý do nào đó, bạn không thể phân lớp và ghi đè layoutSubviews
, thì việc quan sát bounds
sẽ hoạt động, ngay cả khi hơi bẩn. Tệ hơn nữa, có rủi ro khi quan sát - Apple không đảm bảo KVO hoạt động trên các lớp UIKit. Đọc cuộc thảo luận với kỹ sư của Apple tại đây: Khi nào một đối tượng liên quan được phát hành?
câu trả lời ban đầu:
Bạn có thể sử dụng quan sát khóa-giá trị:
[yourView addObserver:self forKeyPath:@"bounds" options:0 context:nil];
và thực hiệ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:
}
}