2

当我在 Xcode 中开发基于视图的项目时,我的视图工作正常。但是当我使用基于窗口的项目并自己创建一个视图并尝试将其作为子视图添加到窗口时,它会在底部给我一个白带。我以前从未遇到过这个问题,但第一次遇到。

4

4 回答 4

4

您应该始终通过从 UIScreen 获取分辨率来设置视图大小

UIView *controllersView = [myViewController view]; // get the view
[controllersView setFrame:[[UIScreen mainScreen]applicationFrame]]; // set the Framesize

这会自动将原点设置为 x=0 和 y=20。请记住,您应该使用此方法而不是手动将原点设置为 y=20,因为屏幕分辨率可能会像新 iPhone 4 一样发生变化。

有趣的是,即使是 Apple 的 iPhone 的 HelloWorld 示例也有 20 像素错误,但没有正确设置视图框架。

于 2010-06-18T01:01:35.873 回答
2

如果有人需要知道,偏移原点的代码如下所示:

CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;
于 2009-12-06T00:42:48.673 回答
1

最有可能发生的事情是您正在向窗口添加一个大小合适的视图,以使用状态栏,其大小包括状态栏。

iPhone 的屏幕高 480 像素,其中顶部的 20 像素分配给设备的状态栏(带有信号强度/WiFi 指示器、时钟等的状态栏)。通常情况下,视图的大小将适合窗口的剩余 460 像素,如果您正在开发基于视图的应用程序,那很好 - 该应用程序模板已经提供了一个 320x460 的根视图,您的所有其他子视图都将添加到该视图中。

但是由于您要添加到窗口,它跨越了屏幕的所有 480 像素,我猜您的视图只是 20 像素太短了。尝试更改视图的高度,或设置其 y 偏移量。

于 2009-09-22T04:25:34.410 回答
0

如果您使用的是界面生成器,您可以单击视图,转到属性检查器并将状态栏更改为无。然后,您只需将尺寸检查器中的视图高度调整为 480。

于 2011-06-10T18:37:42.803 回答