| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //
- // QSLBaseNavController.swift
- // QuickSearchLocation
- //
- // Created by mac on 2024/4/10.
- //
- import UIKit
- class QSLBaseNavController: UINavigationController {
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- self.setNavBarAppearence()
- self.interactivePopGestureRecognizer?.delegate = self;
- }
-
- func setNavBarAppearence() {
-
- // 设置 navbar 背景颜色
- self.navigationBar.setBackgroundImage(UIImage.image(color: .white, size: CGSize(width: QSLConst.qsl_kScreenW, height: QSLConst.qsl_kNavFrameH)), for: .any, barMetrics: .default)
- // 取消 navbar 阴影
- self.navigationBar.shadowImage = UIImage()
-
- // 设置文字颜色、大小
- var textAttr:[NSAttributedString.Key : Any] = [NSAttributedString.Key : Any]()
- textAttr[NSAttributedString.Key.foregroundColor] = UIColor.clear
- textAttr[NSAttributedString.Key.font] = UIFont.textM(17)
- self.navigationBar.titleTextAttributes = textAttr
-
- if #available(iOS 15.0, *) {
-
- let appearance = UINavigationBarAppearance()
- // appearance.backgroundEffect = UIBlurEffect(style: .regular)
- appearance.configureWithOpaqueBackground()
- appearance.titleTextAttributes = textAttr
- appearance.backgroundColor = .white
-
- appearance.shadowColor = .clear
- self.navigationBar.standardAppearance = appearance
- self.navigationBar.scrollEdgeAppearance = appearance
- }
- }
- }
- extension QSLBaseNavController {
-
- /// 设置当跳转到其他页面时隐藏 tabbar
- override func pushViewController(_ viewController: UIViewController, animated: Bool) {
-
- if children.count > 0 {
- viewController.hidesBottomBarWhenPushed = true
- }
- super.pushViewController(viewController, animated: animated)
- }
- }
- extension QSLBaseNavController: UIGestureRecognizerDelegate {
-
- /// 跳转到其他页面时开启侧滑
- func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
- return children.count > 1
- }
- }
|