隐藏导航栏和内容之间的分隔线

Posted

技术标签:

【中文标题】隐藏导航栏和内容之间的分隔线【英文标题】:Hide separtor line between navigationBar and Content 【发布时间】:2015-09-08 13:22:16 【问题描述】:

我想删除这个连接(导航栏和 ImageView 橙色之间的线):

有人知道怎么做吗?

【问题讨论】:

我不认为你可以删除这一行,这是视图和导航控制器之间的分离。我建议隐藏导航并在视图本身中添加导航项,看起来和感觉就像整个视图。 ***.com/questions/18921082/… 【参考方案1】:

就我而言,我实现了以下代码。

override func viewDidLoad() 
    super.viewDidLoad()

    if self.navigationController != nil 
        hideBorder(self.navigationController!.navigationBar)
    


func hideBorder(view: UIView) -> Bool 
    if view.isKindOfClass(UIImageView.classForCoder()) && view.frame.size.height <= 1 
        view.hidden = true
        return true
    

    for sub in view.subviews 
        if hideBorder(sub as! UIView) 
            return true
        
    
    return false

【讨论】:

【参考方案2】:

修改AppDelegate文件并添加以下代码:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    // Override point for customization after application launch.

    // Change status bar color to white
    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent

    // To remove separtor line between navigation controller and view
    UINavigationBar.appearance().setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
    UINavigationBar.appearance().shadowImage = UIImage()
    return true

【讨论】:

【参考方案3】:

viewWillAppear 中添加以下行

self.navigationController?.navigationBar.shadowImage = UIImage()

【讨论】:

【参考方案4】:
for parent in self.navigationController!.navigationBar.subviews 
        for childView in parent.subviews 
            if(childView is UIImageView) 
                childView.removeFromSuperview()
            
        
    

【讨论】:

以上是关于隐藏导航栏和内容之间的分隔线的主要内容,如果未能解决你的问题,请参考以下文章

导航栏和内容之间的空间

在状态栏和导航栏之间添加图片

Android 显示、隐藏状态栏和导航栏

iOS:状态栏和导航栏:空格或底层

点击设备时如何隐藏状态栏和导航栏

隐藏状态栏和导航栏位置