无法隐藏导航栏下的暗线 - setBackgroundImage / shadow无法正常工作

时间:2015-01-03 19:25:14

标签: ios swift uinavigationbar

enter image description here

导航栏和上面显示的分段控件之间有一条细线。我需要尝试删除此行。

导航栏不是半透明的(我不想要它)。

我已尝试过此代码,但它无效:

@IBOutlet var navBar: UINavigationBar!

self.navBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navBar.shadowImage = UIImage()

我在链接的答案中尝试了解决方案但它们无法正常工作。这个问题有同样的问题,但答案是一样的,他们不能工作。

2 个答案:

答案 0 :(得分:2)

AppDelegate 中,这已全局更改了导航栏的格式,并删除了 Swift 爱好者的底线/边框:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarPosition: UIBarPosition.Any, barMetrics: UIBarMetrics.Default)
    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()
    UINavigationBar.appearance().barTintColor = UIColor.redColor()
    UINavigationBar.appearance().translucent = false
    UINavigationBar.appearance().clipsToBounds = false
    UINavigationBar.appearance().backgroundColor = UIColor.redColor()
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : (UIFont(name: "FONT NAME", size: 18))!, NSForegroundColorAttributeName: UIColor.whiteColor()] }

Haven没有设法在特定VC上实现任何不同的功能,但这将有助于90%的人。

答案 1 :(得分:0)

一个非常简单的隐藏线的解决方案是

override func viewDidLoad()
{
    super.viewDidLoad()

    self.navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
}