gpt4 book ai didi

ios - 如何根据设备方向 iOS 6 自动旋转 UIView?

转载 作者:行者123 更新时间:2023-11-28 18:38:49 25 4
gpt4 key购买 nike

我从 iOS 5.0 开始我的项目,现在更新到 iOS 6,我在做方向时遇到问题,为了测试我创建了一个示例应用程序,并在委托(delegate)中添加了以下代码...

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskAll;
}

在我的 View Controller 中,我实现了以下方法...

-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}

-(BOOL)shouldAutorotate
{
return YES;
}

我在谷歌搜索 iOS 6.0 后完成的所有上述操作,当我加载应用程序时,基于 supportedInterfaceOrientations 中给出的选项, View 正在加载,这很好,现在当我更改我的设备方向时... View 没有相应地更改运行时,如何根据设备方向更改 View ?

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[notificationCenter addObserver:self
selector:@selector(deviceOrientationDidChange)
name:UIDeviceOrientationDidChangeNotification object:nil];

我是否需要像上面那样添加观察者并以编程方式更改它?或者 View 会通过检测设备方向自动更改吗?

最佳答案

试试这个

- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}


- (BOOL) shouldAutorotate {
return YES;
}


- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscape;
}

前面的代码应该可以在 iOS6 上运行

无论如何,我在我的一个项目中使用了这段代码。我有一个 bool 值 _firstTime,在显示 viewController 之前我将它设置为 YES,然后我将它更改为 NO viewController 出现后

- (NSUInteger)supportedInterfaceOrientations {
if (_firstTime) {
return UIInterfaceOrientationMaskLandscape;
} else {
return UIInterfaceOrientationMaskAll;
}

}

- (BOOL) shouldAutorotate {

return YES;

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (_firstTime) {
return return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)||(interfaceOrientation == UIInterfaceOrientationLandscapeRight);
} else {
return YES;
}
}

关于ios - 如何根据设备方向 iOS 6 自动旋转 UIView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14120375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com