【问题标题】:Remove UINavigationController rounded corners移除 UINavigationController 圆角
【发布时间】:2012-10-27 21:22:43
【问题描述】:

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

我想从这里开始:

至此:

【问题讨论】:

    标签: iphone ios uinavigationcontroller


    【解决方案1】:

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

    【讨论】:

    • 花了很长时间才找到答案!谢谢,现在所有那些讨厌的角落都消失了。
    【解决方案2】:

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

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

    【讨论】:

    • 不,情况并非如此,我的新项目默认都有这个角。是的,你是对的,我使用的是图像,但它没有角。这种行为就像一个默认属性应用程序!
    • 哦,在 iOS 6.0 中,每当您使用黑色状态栏时,都会自动添加圆角。除非您使用默认状态栏,否则我不确定您是否可以摆脱它们。
    【解决方案3】:

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

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

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

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

    【讨论】:

    • 以防万一有人想知道 - 不,我的原始源图像没有圆角。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多