[英]How to add shadow and remove bottom line in NavigationBar globally?
So I'm looking for how can I add shadow to NavigationBar and remove the bottom black line from NavigationBar? 所以我在寻找如何向NavigationBar添加阴影并从NavigationBar删除底部的黑色线条? Also if I have searchBar in NavigationBar then shadow should go below to search bar. 另外,如果我在NavigationBar中具有searchBar,则阴影应位于搜索栏的下方。 I want to make a change globally without making a change in every viewController. 我想全局更改而不在每个viewController中进行更改。
https://imgur.com/a/8ogGRaf.jpg https://imgur.com/a/8ogGRaf.jpg
So I already archive these changes except add a shadow below to search controller. 因此,我已经存档了这些更改,只是在搜索控制器下方添加了阴影。
For Shadow: 对于阴影:
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
For Remove a Bottom Bar: 对于删除底部栏:
UINavigationBar.appearance().backIndicatorImage = UIImage(named:"normal") UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(named:"normal")
This is What issue I'm getting with search Bar 这是我在搜索栏中遇到的问题
2.hide bottom line 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
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.