我的应用程序有一个坚实的灰色导航栏,为了适应iOS 7设计,希望状态栏为相同的颜色。
要执行此操作,我已设置edgesForExtendedLayout = UIRectEdgeNone
和extendedLayoutIncludesOpaqueBars = YES
并将View controller-based status bar appearance
设置为我的plist中的YES
。要为状态栏创建灰色,我将MainWindow
的背景颜色设置为灰色。除非有推送或流行动画,否则这很有效。在动画过程中,状态栏闪烁颜色,看起来像是灰色强度的两倍。当动画结束时,它会变回正确的灰色。
有谁知道可能会发生什么?我应该将状态栏颜色设置为与导航栏颜色不同吗?
答案 0 :(得分:4)
您是使用背景图片还是色调来设置导航栏的背景?
如果您使用背景图像(听起来像是因为您有一个纯灰色背景),您需要确保它高64像素(视网膜中的128像素)。如果您使用旧的iOS 6维度(44分),iOS 7将退回而不包括状态栏。
有关此行为的详细信息,请查看表5-1,“屏幕顶部栏的可调整大小的背景图像的处理” in the iOS 7 transition documentation。
此外,如果是这种情况,您不需要设置edgesForExtendedLayout
,extendedLayoutIncludesOpaqueBars
和View controller-based status bar appearance
。你可能需要它用于其他东西 - 但不是为此。
如果您仍想支持iOS 6,则需要拥有两个不同的背景图像,一个是iOS 7及更高版本,另一个是iOS 6及更低版本的旧版本。这应该可以让你获得所需的效果。