3

如何删除 UINavigationController 顶部圆角?是否有任何 plist 属性或者我需要以编程方式执行此操作?

我想从这个出发:

在此处输入图像描述

对此:

在此处输入图像描述

4

3 回答 3

5

只需将状态栏样式从“Black Opaque”更改为“Black Translucent”,您的 rootViewController 的所有 4 个角将不再是圆角。只要您不设置视图控制器的属性,wantsFullScreenLayout = YES就不会在状态栏后面绘制任何内容。你的 UIWindow 必须有backgroundColor = [UIColor blackColor],这样用户就不会注意到状态栏不是真正的“黑色不透明”。

于 2013-03-07T11:36:00.877 回答
3

好吧,默认外观是底部图像中的外观。那么你做了什么,首先获得顶部图像的外观?我的猜测是,您使用图像作为 UINavigationBar 的背景。找到图像并将其替换为没有圆角的版本。

另一种方法是 UINavigationBar 子类。在这种情况下,您可能会查找该子类并查看是否有类似的行[self.layer setCornerRadius:3.0]并将其删除。

于 2012-10-27T22:02:51.820 回答
2

我相信 Sascha 说当您使用黑色状态栏时会自动添加圆角时可能是正确的。我注意到在我的一个新应用程序中,我的 UINavigationController 有圆角和黑色状态栏,即使我没有在 xib 文件、info.plist 文件甚至 App Delegate 中设置它。

我做了一个快速测试并将我使用的图像交换为 UINavigationController/NavigationBar 背景,发现导航栏颜色会自动影响状态栏,而状态栏反过来又会使导航栏的角落变圆(奇怪)

查看我的导航栏的快照(圆角的生成纯粹是由于我用作 UINavigationController 背景的图像的颜色!)

在此处输入图像描述

在此处输入图像描述

所以我想在你的情况下 - 一个建议是尝试不同的颜色背景,看看你是否有和我一样的结果。

于 2013-01-02T01:45:33.427 回答