2

我很混乱。我没有状态栏,也不知道如何设置滚动视图的尺寸。是 320 x 480 还是 320 x 460?因为当我将它拖到情节提要上并填满整个屏幕时,它说它是 320 x 460,但是当我向其中添加子视图时,它们的位置会很奇怪,就像视图短 20 像素之类的一样。

编辑:我只是有点困惑,因为当我的状态栏消失时,它不会重新调整视图大小,它只会使视图缩短 20 像素,这真的没有意义,对吧?它不应该让它长 20 像素而不是仅仅切断 20 像素吗?

4

3 回答 3

7

iPhone屏幕绝对是320x480。

您在故事板中遇到问题的原因是有多个地方可以告诉它您没有状态栏。您需要追踪所有这些(3?)并确保它说没有状态栏。

最常见的问题是,当您在嵌套的 viewController 中将其专门设置为关闭时,您的状态栏要么打开,要么在早期的 viewController 中推断出来。这导致它没有状态栏,但显示为 460 像素高。正如您在图像中看到的那样,它明显短了 20 个像素。那是因为 segue 告诉它,当它出现时,即使它本身没有状态栏,也要在状态栏“下方”呈现它。如果我要改变模态的segue来推动问题就消失了。或者,如果我将第一个 viewController 设置为没有 statusBar,问题就会消失。另请注意,在某些情况下,Xcode 可能需要重新启动才能正确更新其图形故事板。

在此处输入图像描述

还有一件事

此外,在代码或情节提要中设置隐藏状态栏与在 .info 文件中设置UIStatusBarHidden为不同。YES如果您在将其隐藏在其他任何地方时将其设置为 no,则您的 default.png 将被剪切并在加载时显示状态栏,然后一旦应用程序完成启动,它将消失。因此,请务必将其隐藏在那里以获得一致的用户体验。

代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    [application setStatusBarHidden:YES];
}
于 2012-08-02T19:52:53.450 回答
3

它是 320 x 480,你看到的 20 像素是状态栏,如果你打算隐藏状态栏并想在 Interface Builder 中匹配大小,你可以去 IB 到 Simulated Metrics -> Status Bar 并选择没有任何。

这不会影响视图控制器中视图的实际大小,尽管即使您将视图设置为 320 x 480,它也会自行调整大小以适应大小,如果存在,视图控制器将自行调整大小为 320 x 460是状态栏,如果还有导航栏,则为 320 x 418。

于 2012-08-02T20:01:10.383 回答
1

我有点不擅长 iPhone 编程,但这 20px 应该是上边框,在那里你可以看到载体和强度等。

于 2012-08-02T19:53:20.130 回答