【问题标题】:UINavigationController NavigationBar not applying transparent imageUINavigationController NavigationBar 不应用透明图像
【发布时间】:2019-04-09 19:36:08
【问题描述】:

在导航标签栏中应用透明图像时。它变成白色而不是透明..

self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.tintColor = UIColor.white

【问题讨论】:

    标签: swift xcode


    【解决方案1】:

    确保导航栏下方有一些东西,这样它就不会变得透明而显示为白色背景。您需要将 uiviews 拖到其下,然后添加布局约束。否则,请确保您没有在其他地方更改导航栏的颜色。

    【讨论】:

    • 是的,导航栏下方有一些东西,因为当我尝试将图像内容的下半部分拖到它时它仍然存在..所以导航栏肯定是白色的。 “否则,请确保检查您没有在其他地方更改导航栏的颜色。” - 是的,我仍在检查是否有什么东西在其他地方触发它。谢谢
    【解决方案2】:

    使用此扩展程序使导航栏透明。

    extension UINavigationController {
        func transparant() {
            self.navigationBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)
            self.navigationBar.shadowImage = UIImage()
            self.navigationBar.isTranslucent = true
            self.view.backgroundColor = UIColor.clear
        }
    }
    

    【讨论】:

      【解决方案3】:

      如果您使用的是导航控制器,请尝试以下操作:

      self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
      self.navigationController?.navigationBar.shadowImage = UIImage()
      title = "Some Title"
      

      如果你使用 UINavigationBar,试试这个:

      @IBOutlet var navBarOutlet: UINavigationBar!
      
          override func viewDidLoad() {
              super.viewDidLoad()
      
              // navigatin bar transparent
              navBarOutlet.setBackgroundImage(UIImage(),for:.default)
              navBarOutlet.shadowImage=UIImage()
              navBarOutlet.topItem?.title = "Some Title"
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-15
        • 2014-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-04
        • 2020-04-20
        相关资源
        最近更新 更多