1

我正在尝试UIViewController通过设备方向通知我重新应用布局。为此,我将发布UIDeviceOrientationDidChangeNotification到默认中心。它有效,但没有旋转动画。我想我错过了一些东西。我怎样才能UIDeviceOrientationDidChangeNotification正确发布?

4

3 回答 3

1

它将为您发布事件:

- (void)updateOrientation
{
    [[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
}

但是,当然,您应该更加整洁,[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]在需要停止旋转时调用,然后[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];在您准备好再次处理它时调用:它将为您的视图控制器调用所有必要的回调。

于 2014-03-06T04:32:58.583 回答
1

利用:

[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:YES];

相反(根据需要替换 LandscapeRight),因为您不应该发布系统通知。

于 2011-07-13T22:17:58.797 回答
0

当您尝试发布该内容时,我认为不应该有任何内容。相反,它会在方向发生变化时自动发布。如果你想使用它,你应该为帽子通知添加一个观察者。

于 2011-03-21T00:14:28.423 回答