Чтобы получить автоматическое поведение подвида, объявить UIView
категории, добавив метод, который вы хотите ссылаться. Затем, чтобы ваше мнение подписалось на уведомления о ротации устройства, и как часть обработки уведомления, вызовите тот же самый метод во всех его подзонах. Нечто подобное (набраны без пользы автозамены или скомпилирован, поэтому, пожалуйста, в качестве иллюстрации, а не полный пример программы):
@interface UIView (MyAppAdditions)
- (void)rotationDetected;
@end
@implementation UIView (MyAppAdditions)
- (void)rotationDetected
{
}
@end
@implementation MyView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:UIDeviceOrientationDidChangeNotification object:nil];
}
return self;
}
- (void)didRotate:(NSNotification *)notification
{
[self rotationDetected];
[self.subviews makeObjectsPerformSelector:@selector(rotationDetected)];
}
@end
Более гибкая реализация также переопределить initWithCoder:
или awakeFromNib
подписаться на уведомление о ротации, а также ,
Вы можете попробовать 'NSNotificationcenter' – Exploring