推送动画期间iOS 7状态栏颜色.

Woo*_*gie 6 iphone objective-c statusbar ios ios7

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

要做到这一点,我给自己定edgesForExtendedLayout = UIRectEdgeNoneextendedLayoutIncludesOpaqueBars = YES,并View controller-based status bar appearance设置为YES我的plist.要为状态栏创建灰色,我将my的背景颜色设置MainWindow为灰色.除非有推送或流行动画,否则这很有效.在动画过程中,状态栏闪烁颜色,看起来像是灰色强度的两倍.当动画结束时,它会变回正确的灰色.

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

Tho*_*son 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 及更低版本的旧版本。这应该会给你带来你想要的效果。