gpt4 book ai didi

iphone - 在 iPad 上运行的 iPhone 应用程序中横向 View 顶部有 20 像素间隙

转载 作者:行者123 更新时间:2023-12-03 20:57:41 24 4
gpt4 key购买 nike

我正在 iPad 模拟器中运行“仅限 iPhone”的应用程序...当设备的方向更改为横向模式时,我有一个 View Controller ,它会启动并以编程方式加载 WebView。这在 iPhone 中运行顺利(横向 View 顶部没有间隙),但在 iPad 中进行模拟时, View 顶部有 20px(我认为?)间隙。

这是横向 View Controller 的 viewDidLoad 中的代码,我在其中加载 WebView:

    [super viewDidLoad];

// Initialize webview and add as a subview to LandscapeController's view
CGRect webFrame = [[UIScreen mainScreen] bounds]; // Use bounds to take up entire screen
self.myWebView = [[[UIWebView alloc] initWithFrame:webFrame] autorelease];
self.myWebView.scalesPageToFit = YES;
self.myWebView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.myWebView.delegate = self;
[self.view addSubview: self.myWebView];

// remove status bar from top of screen
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];

将状态栏设置为默认,没有影响。

我似乎不明白为什么这在 iPhone 上没问题,但在 iPad 上却出现了???有任何想法吗?提前致谢!

最佳答案

屏幕边界采用屏幕坐标。您将 webview 添加为 self.view 的 subview ;它的框架位于 self.view 坐标中。您想要填充您的 View ,而不是屏幕(您的 View 由 UIViewController/UIKit 的其余部分自动调整大小,这最终应该调整 Web View 的大小以自动调整大小):

self.myWebView = [[[UIWebView alloc] initWithFrame:self.view.bounds] autorelease];

在 -viewDidLoad 中更改状态栏并不安全。 View 加载可以在任何地方发生(当任何东西调用 viewController.view 时就会发生)。我也不确定你为什么要设置样式;你想设置隐藏性:

  • 在 -viewWillAppear: 中执行 [application setStatusBarHidden:YESAnimated:animated];
  • 在 -viewWillDisappear: 中,执行 [application setStatusBarHidden:NOanimated:animated];

最后,您可能会看到不同的行为,因为 iPad 运行的是 OS 3.2.x,而手机运行的是 3.1.x 或 4.x。此外,iPhone 兼容模式使用虚拟状态栏; “真实”状态栏始终位于屏幕边缘。

关于iphone - 在 iPad 上运行的 iPhone 应用程序中横向 View 顶部有 20 像素间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847971/

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