gpt4 book ai didi

ios - 将横向模式下的模态视图显示在纵向模式下的另一个 View 之上

转载 作者:行者123 更新时间:2023-11-29 02:59:18 26 4
gpt4 key购买 nike

我有一个 UIView (A),它以纵向模式显示并附加了一个 UIButton。当用户单击按钮时,第二个 UIView (B) 被初始化并显示为 UIView A 顶部的模态视图。

是否可以将第二个 Modal UIView 配置为默认以横向模式而不是纵向模式显示?这种旋转应该以编程方式工作,并且独立于 iPhone/iPad 设备的任何实际旋转。

我试图在分配和显示第二个 UIView 的方法中使用 setStatusBarOrientation 更改方向,但这不起作用:

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

打开模态视图的方法如下:

- (void) showModalView
{
// get screen dimensions
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;

// init elements
UIViewController *overlayVc = [[UIViewController alloc] init];
UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0,0, screenWidth, screenHeight)];
UIImageView *bgImgView = [[UIImageView alloc] initWithFrame:overlayView.bounds];

// set status bar orientation
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft animated:YES];

// add overlay to view
[overlayView addSubview:bgImgView];
[overlayVc setView:overlayView];

// show modal vc
[self presentViewController:overlayVc animated:YES completion:nil];
}

这就是我的意思:

foo

非常感谢您

最佳答案

是的。首先,您需要告诉您的应用您支持横向模式。您在项目文件中执行此操作,在应用程序目标的常规选项卡下。

然后在您的 View Controller 中,您需要实现“配置 View 旋转设置”部分下的方法。具体来说,这看起来像:

- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight
}

- (BOOL)shouldAutorotate
{
return YES;
}

注意我们返回掩码的函数 supportedInterfaceOrientations。

当您以模态方式呈现时,您的 View 应该会自动旋转。您可能还需要在以前的 View Controller 中实现这些相同的方法,以便当您返回时它知道如何定位自己。

关于ios - 将横向模式下的模态视图显示在纵向模式下的另一个 View 之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483614/

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