我想在iOS 12中隐藏/删除导航栏的大标题底部边框。在新版本中,它工作得很好。
func setupTransparentNavigationBar() {
let textAttributes = [NSAttributedString.Key.foregroundColor: UIColor.colorWhite()]
navigationController?.navigationBar.tintColor = UIColor.colorWhite()
navigationController?.navigationBar.backgroundColor = UIColor.clear
navigationController?.navigationBar.isTranslucent = true
if #available(iOS 13, *) {
let appearance = UINavigationBarAppearance()
appearance.configureWithTransparentBackground()
appearance.backgroundColor = .clear
appearance.titleTextAttributes = textAttributes
// Customizing our navigation bar
navigationItem.standardAppearance = appearance
navigationItem.scrollEdgeAppearance = appearance
} else {
navigationController?.navigationBar.titleTextAttributes = textAttributes
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
}
}
有办法移除这个吗?或者是本地的iOS行为?
发布于 2022-11-14 02:07:43
尝试使用以下分机:
extension UINavigationController {
func hideHairline() {
if let hairline = findHairlineImageViewUnder(navigationBar) {
hairline.isHidden = true
}
}
func restoreHairline() {
if let hairline = findHairlineImageViewUnder(navigationBar) {
hairline.isHidden = false
}
}
func findHairlineImageViewUnder(_ view: UIView) -> UIImageView? {
if view is UIImageView && view.bounds.size.height <= 1.0 {
return view as? UIImageView
}
for subview in view.subviews {
if let imageView = self.findHairlineImageViewUnder(subview) {
return imageView
}
}
return nil
}
}
在viewWillAppear中使用它:
navigationController?.hideHairline()
https://stackoverflow.com/questions/74428699
复制相似问题