我有一个UINavigation栏,其中包含我在我的代码的viewDidLoad方法中设置的自定义背景:
UIImage *image = [UIImage imageNamed:@"V2_navbar"];
[self.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
在iOS 5中,结果如下所示:
在iOS 6中,结果如下所示:
一方面,状态栏现在是黑色的,这没关系。但是如果你仔细观察第二张图像,你会发现导航栏的顶角现在已经四舍五入,看起来很糟糕。
有谁知道如何解决这个问题?
答案 0 :(得分:2)
基于快速实验...
作为解决方法,只需在项目设置中将状态栏样式设置为黑色半透明。这会产生全局屏幕,包括状态栏后面区域UIWindow
的净效果 - 在3.5英寸设备上,您的窗口将是480张而不是460张。但是,除非您的视图控制器设置wantsFullScreenLayout
到YES
,你不会被要求绘制那个区域,它看起来与黑色不透明相同。
如果您的代码在某处以编程方式设置状态栏样式,则可能需要禁用它。
编辑:回答Matt.Z的担忧...... Apple增加了圆角,因为那里的设计师有时喜欢屏幕边缘的圆角。最初的1984年Macintosh桌面在四个角落都有它们,它们一直存活到OS 9,OS X最初将它们保留在两个顶角,但随后它们在10.5中消失。在这种情况下,他们似乎走了另一条路,决定在iOS 5和6之间的“显示器边缘”添加圆角。所以它们纯粹出于审美原因而被Apple添加。
通过将wantsFullScreenLayout
设置为YES
,您可以将应用程序可以用作全屏的区域扩展到状态栏下方的向上,以便“显示的边缘”不再是导航栏的顶部。由于Apple不希望通过从显示区域的中间切割块来破坏应用程序,因此iOS不会添加角落。