<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          EachNavigationBar為每個(gè)視圖控制器自定義導(dǎo)航條

          聯(lián)合創(chuàng)作 · 2023-09-26 11:50

          EachNavigationBar:每個(gè)視圖控制器的自定義導(dǎo)航條。

           

          示例

          要運(yùn)行示例項(xiàng)目,首先克隆 repo 并在 Example 目錄運(yùn)行 pod install

          版本要求

          • iOS 9.0
          • Swift 4.2

          安裝

          EachNavigationBar 可通過 CocoaPods 或者 Carthage 安裝, 簡單的添加下面一行到你的 Podfile 或者 Cartfile:

          Podfile

          pod 'EachNavigationBar'

          Cartfile

          github "Pircate/EachNavigationBar"

          用法

          導(dǎo)入

          Swift

          import EachNavigationBar

          開啟

          給當(dāng)前導(dǎo)航棧的 viewControllers 添加一個(gè)獨(dú)立的導(dǎo)航欄。

          只對當(dāng)前導(dǎo)航棧有效,不影響其他導(dǎo)航棧。

          let nav = UINavigationController(rootViewController: vc)
          nav.navigation.configuration.isEnabled = true

          設(shè)置

          導(dǎo)航棧全局配置

          不要通過 navigationController.navigationBar 去設(shè)置全局屬性!!!

          更多配置請看這里

          nav.navigation.configuration.titleTextAttributes = [.foregroundColor: UIColor.blue]
          
          nav.navigation.configuration.barTintColor = UIColor.red
          
          nav.navigation.configuration.shadowImage = UIImage(named: "shadow")
          
          nav.navigation.configuration.setBackgroundImage(UIImage(named: "nav"), for: .any, barMetrics: .default)
          
          nav.navigation.configuration.backItem = UINavigationController.Configuration.BackItem(style: .title("返回"))
          
          nav.navigation.configuration.prefersLargeTitles = true
          
          nav.navigation.configuration.largeTitle.displayMode = .always

          每個(gè)控制器設(shè)置

          普通設(shè)置

          // 一般用法同系統(tǒng)組件
          navigation.bar  -> EachNavigationBar -> UINavigationBar
          navigation.item -> UINavigationItem
          
          // 隱藏導(dǎo)航欄
          navigation.bar.isHidden = true
          
          // 設(shè)置導(dǎo)航欄透明度
          navigation.bar.alpha = 0.5
          
          // 設(shè)置標(biāo)題透明度
          navigation.bar.setTitleAlpha(0.5)
          
          // 設(shè)置 barButtonItem 透明度
          navigation.bar.setTintAlpha(0.5)
          // 如果 barButtonItem 是自定義視圖
          navigation.item.leftBarButtonItem?.customView?.alpha = 0.5
          // 如果 barButtonItem 自定義了 tintColor
          navigation.item.leftBarButtonItem?.tintColor = navigation.item.leftBarButtonItem?.tintColor?.withAlphaComponent(0.5)
          
          // 移除毛玻璃效果
          navigation.bar.isTranslucent = false
          
          // 隱藏底部陰影
          navigation.bar.isShadowHidden = true
          
          // 設(shè)置狀態(tài)欄樣式
          navigation.bar.statusBarStyle = .lightContent
          
          // 設(shè)置返回按鈕
          navigation.bar.backBarButtonItem = .init(style: .title("Back"), tintColor: .red)
          
          // 允許返回事件
          navigation.bar.backBarButtonItem.shouldBack = { item in
              // do something
              return false
          }
          
          // 返回事件之前回調(diào)
          navigation.bar.backBarButtonItem.willBack = {
              // do something
          }
          
          // 返回事件之后回調(diào)
          navigation.bar.backBarButtonItem.didBack = {
              // do something
          }
          
          // 如果想自定義導(dǎo)航欄位置,請將下面屬性設(shè)為 false
          navigation.bar.automaticallyAdjustsPosition = false
          
          // 導(dǎo)航欄附加高度
          navigation.bar.additionalHeight = 14
          
          // 導(dǎo)航欄附加視圖
          navigation.bar.additionalView = UIView()
          
          // 導(dǎo)航欄陰影
          navigation.bar.shadow = Shadow(
              color: UIColor.black.cgColor,
              opacity: 0.5,
              offset: CGSize(width: 0, height: 3))

          大標(biāo)題設(shè)置(iOS 11.0+)

          // 開啟大標(biāo)題
          navigation.bar.prefersLargeTitles = true
          
          // 顯示模式
          navigation.item.largeTitleDisplayMode = .always
          
          // 設(shè)置大標(biāo)題透明度
          navigation.bar.setLargeTitleAlpha(0.5)

          關(guān)于約束

          和使用系統(tǒng)導(dǎo)航欄完全一致。
          
          • 請注意 iOS 11 以上和以下的區(qū)別。
          • 如果使用 XIB 請參看這篇文章,應(yīng)該會(huì)有幫助。
          • SnapKit 用戶可以試試這個(gè) extension

           

          瀏覽 28
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久成人影音先锋 | 极品女神偷情 | 午夜香蕉网 | 欧美日韩东京热 | 亚洲艾薇在线观看 |