4

我在 UIView 的子类中有一个子视图。当设备旋转时,我希望删除子视图。这是我的代码:

- (void)awakeFromNib
{
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil];

}

- (void)orientationChanged
{
    [subview removeFromSuperview];
}

我的问题是,即使设备稍微倾斜,或者放在例如子视图删除的桌子上。我能做些什么来防止这种情况发生?

4

1 回答 1

6

不要跟踪设备方向。跟踪界面方向。使用UIApplicationWillChangeStatusBarOrientationNotification代替UIDeviceOrientationDidChangeNotification,并从通知的 . 中获取新的界面方向userInfobeginGeneratingDeviceOrientationNotifications(如果您跟踪界面方向,则不必这样做。)

于 2013-06-25T22:43:56.167 回答