在iPhone中以编程方式向窗口添加视图时,在屏幕底部看到一个白色条带?

时间:2009-09-22 04:10:25

标签: iphone cocoa-touch uiview interface-builder xib

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

4 个答案:

答案 0 :(得分: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像素的错误。

答案 1 :(得分:2)

如果有人需要知道,偏移原点的代码看起来像这样:

CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;

答案 2 :(得分:1)

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

iPhone的屏幕高度为480px,其中前20px分配给设备的状态栏(具有信号强度/ WiFi指示灯,时钟等的状态栏)。通常情况下,视图将根据窗口的剩余460px进行调整,如果您正在开发基于视图的应用程序,那很好 - 该应用程序模板已经提供了一个320x460根视图,可以添加所有其他子视图。

但是既然你要添加到窗口,这个窗口跨越所有480px的屏幕,我猜你的视图只是20px太短了。尝试更改视图的高度,或设置其y偏移量。

答案 3 :(得分:0)

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