所以我正在寻找如何向 NavigationBar 添加阴影并从 NavigationBar 中删除底部黑线?另外,如果我在 NavigationBar 中有 searchBar,那么阴影应该在下方搜索栏。我想在全局范围内进行更改,而不是在每个 viewController 中进行更改。
https://imgur.com/a/8ogGRaf.jpg
所以我已经存档了这些更改,除了在搜索 Controller 下面添加一个阴影。
对于阴影:
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
删除底栏:
UINavigationBar.appearance().backIndicatorImage = UIImage(named:"normal") UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named:"normal")
这是我在搜索栏中遇到的问题
最佳答案
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
}
}
关于ios - 如何全局添加阴影和删除 NavigationBar 中的底线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56372066/