iPhone应用程序中奇怪的状态栏偏移

Posted

技术标签:

【中文标题】iPhone应用程序中奇怪的状态栏偏移【英文标题】:Weird statusbar offset in iPhone app 【发布时间】:2011-10-06 01:30:30 【问题描述】:

我正在开发一个应用程序,我想让它全屏显示,但是当我隐藏状态栏时,我得到了 44 像素的偏移量(状态栏大小)。

带有状态栏的按钮在线: http://i55.tinypic.com/xlbjsz.png

然后我在 Info.plist 文件中设置“状态栏最初是隐藏的:YES”,我得到一个偏移量:http://i55.tinypic.com/2up3ceo.png

当我取消选中 Autoresize 子视图时,我得到以下信息: http://i54.tinypic.com/2h821r4.png

我已将所有xibs状态栏都设置为none,包括window.xib,我没有任何想法,请帮助我。

【问题讨论】:

试着把你的背景图片/它的视图状态栏长度变大? 我认为问题不在于图像本身,因为它的分辨率是 960x640,但是按钮向上移动了 40 px,我不知道为什么 【参考方案1】:

从您上传的图片看来,一切正常。当您隐藏状态栏时,您的视图将向上移动状态栏之前用于显示自身的像素数量。

因此,如果在显示状态栏时视图大小为 320 x 460(状态栏的高度为 20 像素,因此如果将其加起来,它将使其成为 320 x 480 的整个 iPhone 屏幕尺寸),当您隐藏它时您的视图将具有 320 x 480 的新尺寸。

正如您所说,默认情况下,您的视图将自动调整内部视图的大小,当您检查它时,在页面底部获得 20 像素的间隙是正常的。

请记住,在 Retina 显示器 (iPhone 4) 上,所有这些尺寸都加倍,因此您实际上会在底部看到 40 像素的间隙。

【讨论】:

所以我应该将图像的高度延长 40 px? 如果您正在为视网膜显示编程,是的,您应该这样做。不仅如此,您还应该拥有一张 320 x 480 的图像和另一张两倍大 (640 x 960) 的图像。例如:background.pngbackground@2x.png - 第一个小,第二个大两倍。然后将 UIImage 设置为第一个,如果它在视网膜显示器上运行,ios 将自动切换到更大的那个。 但我的图像已经是最大尺寸的 960x640,看起来第二张图片的图像分辨率显示得很好,但是“Upisi”按钮向上移动了 40 像素 您的视图大小如何?是否设置为 640 x 960?您可以通过在界面构建器中选择视图并从属性检查器面板检查它的大小(面板顶部的倒数第二个选项卡 - 上面带有标尺图像的选项卡)来检查。 它设置为 320x460,在我将其更改为 320x480 后它很好:) 我不需要将它设置为 960x640,加载时它仍然是视网膜?如果我把它设置为 960x640,它就太大了,很难编辑它

以上是关于iPhone应用程序中奇怪的状态栏偏移的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 应用程序中奇怪的 OpenGL ES 行为

iphone中奇怪的UISearchBar取消按钮行为(在模拟器中工作正常)

如何在 iOS 4 中摆脱 UIPopoverController 中奇怪的黑色导航栏

iOS 中奇怪的元素重叠 (PhoneGap)

ASP.Net 应用程序中奇怪的 GAC 错误

Chrome 中奇怪的 CSS 边框问题