【问题标题】:How to add shadow and remove bottom line in NavigationBar globally?如何在导航栏中全局添加阴影和删除底线?
【发布时间】:2019-10-15 17:52:24
【问题描述】:

所以我正在寻找如何向 NavigationBar 添加阴影并从 NavigationBar 中删除底部黑线?此外,如果我在 NavigationBar 中有 searchBar,那么阴影应该在搜索栏下方。我想在不改变每个 viewController 的情况下进行全局更改。

https://imgur.com/a/8ogGRaf.jpg

所以我已经存档了这些更改,除了在下面添加一个阴影到搜索控制器。

  1. 对于阴影:

    self.navigationController?.navigationBar.isTranslucent = false
    self.navigationController?.navigationBar.layer.shadowColor = UIColor.black.cgColor
    self.navigationController?.navigationBar.layer.shadowOffset = CGSize(width: 0.0, height: 0.0)
    self.navigationController?.navigationBar.layer.shadowRadius = 7.0
    self.navigationController?.navigationBar.layer.shadowOpacity = 0.2
    
  2. 对于删除底栏:

    UINavigationBar.appearance().backIndicatorImage = UIImage(named:"normal")
    UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named:"normal")
    

这是我在搜索栏遇到的问题

https://imgur.com/a/QQ9yrbE

【问题讨论】:

  • 当您应该在搜索栏下方添加阴影时,您正在向导航栏添加阴影
  • 您的意思是喜欢创建带有阴影的新 UIView,然后将其添加到导航栏下方?

标签: ios swift uinavigationcontroller uinavigationbar uinavigationitem


【解决方案1】:

2.隐藏底线

public extension UINavigationBar {

    /// Hide line under navigation bar
    public func hideBottomHairline() {
        let navigationBarImageView = hairlineImageViewInNavigationBar(self)
        navigationBarImageView!.isHidden = true
    }

    ///  Show line under navigation bar
    public func showBottomHairline() {
        let navigationBarImageView = hairlineImageViewInNavigationBar(self)
        navigationBarImageView!.isHidden = false
    }

    fileprivate func hairlineImageViewInNavigationBar(_ view: UIView) -> UIImageView? {
        if view.isKind(of: UIImageView.self) && view.bounds.height <= 1.0 {
            return (view as! UIImageView)
        }
        let subviews = (view.subviews as [UIView])
        for subview: UIView in subviews {
            if let imageView: UIImageView = hairlineImageViewInNavigationBar(subview) {
                return imageView
            }
        }
        return nil
    }   
}

【讨论】:

  • 感谢@jone 的回答。你知道如何使用 SearchBar 归档 Shadow 吗?
猜你喜欢
  • 2016-10-28
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
相关资源
最近更新 更多