6

我的应用程序有一个纯灰色的导航栏,为了适应 iOS 7 的设计,希望状态栏是相同的颜色。

为此,我已经在我的 plist 中设置edgesForExtendedLayout = UIRectEdgeNone并设置了。为了为状态栏创建灰色,我将我的背景颜色设置为灰色。这很好用,除非有推送或弹出动画。在动画过程中,状态栏会闪烁颜色,看起来像是灰色强度的两倍。当动画结束时,它会变回正确的灰色。extendedLayoutIncludesOpaqueBars = YESView controller-based status bar appearanceYESMainWindow

有谁知道可能会发生什么?我应该设置状态栏颜色以不同地匹配导航栏颜色吗?

4

1 回答 1

4

您是否使用背景图像或色调来设置导航栏的背景?

如果您使用背景图像(听起来像是因为您有纯灰色背景),您需要确保它是 64 点高(视网膜中为 128 像素)。如果您使用旧的 iOS 6 尺寸(44 磅),iOS 7 将退回并且不包含状态栏。

有关此行为的详细信息,请查看iOS 7 过渡文档中的表 5-1,“屏幕顶部条的可调整大小背景图像的处理”

此外,如果是这种情况,您不需要设置edgesForExtendedLayout,extendedLayoutIncludesOpaqueBarsView controller-based status bar appearance. 你可能需要它来做其他事情——但不是这个。

如果你想仍然支持 iOS 6,你需要有两个不同的背景图像,一个是 iOS 7 和更高版本,一个是 iOS 6 和更低版本。这应该会给你你正在寻找的效果。

于 2013-09-19T10:10:40.463 回答