Ios 每次设备旋转时,如何调用UIView子类中的方法?

Ios 每次设备旋转时,如何调用UIView子类中的方法?,ios,Ios,我想在设备旋转时调用添加到主窗口的项的UIView子类中的函数 我有很多项,所以我不想一个接一个地调用这样的方法,但我想为这个项和所有子视图自动调用它 感谢要获得自动子视图行为,请声明一个UIView类别,添加希望调用的方法。然后让您的视图订阅设备旋转通知,作为其处理通知的一部分,在其所有子视图上调用相同的方法。类似这样的内容(键入时没有自动更正或编译的好处,因此请将其作为示例,而不是完整的示例程序): 更灵活的实现还将覆盖initWithCoder:或awakeFromNib以订阅轮换通知。您

我想在设备旋转时调用添加到主窗口的项的UIView子类中的函数

我有很多项,所以我不想一个接一个地调用这样的方法,但我想为这个项和所有子视图自动调用它


感谢

要获得自动子视图行为,请声明一个
UIView
类别,添加希望调用的方法。然后让您的视图订阅设备旋转通知,作为其处理通知的一部分,在其所有子视图上调用相同的方法。类似这样的内容(键入时没有自动更正或编译的好处,因此请将其作为示例,而不是完整的示例程序):


更灵活的实现还将覆盖
initWithCoder:
awakeFromNib
以订阅轮换通知。

您可以尝试
NSNotificationcenter
@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