如何在导航栏后面显示图像?

Posted

技术标签:

【中文标题】如何在导航栏后面显示图像?【英文标题】:How to show an image behind a navigation bar? 【发布时间】:2018-11-20 05:12:41 【问题描述】:

任何想法如何在导航栏后面显示图像并在向下滚动时显示“完整”导航栏?

提前致谢!

【问题讨论】:

看看这里:***.com/a/40670196/8918347 @artemchen 你需要导航栏隐藏/显示还是你想要导航栏在图像中的功能? self.navigationController?.hidesBarsOnTap = true How to hide the navigation bar and toolbar as scroll down? Swift (like myBridge app)的可能重复 【参考方案1】:
navigationController?.hidesBarsOnSwipe = true

你可以这样做。我希望它会起作用。

【讨论】:

【参考方案2】:

您的参考图像可以通过使用以下代码来实现。 这里 180 是 TableView 的标头大小。使用此条件 scrollOffset > 180 您可以更改 NavigationBar 元素的 UIColor

func scrollViewDidScroll(_ scrollView: UIScrollView) 

    let scrollOffset = scrollView.contentOffset.y

    UIView.animate(withDuration: 0.1) 
         self.navigationView.alpha = scrollOffset > 180 ? 1 : 0
    


TableView 的标题中,您应该将所需图像指定为HeaderView

【讨论】:

【参考方案3】:

您可以在视图控制器的 viewDidLoad() 中在导航项的标题视图中添加图片

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let image = UIImage(named: "YOURIMAGE")
    navigationItem.titleView = UIImageView(image: image)

下面是一个如何使用 CGRect 的示例。

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 38, height: 38))
    imageView.contentMode = .ScaleAspectFit
    let image = UIImage(named: "YOURIMAGE")
    imageView.image = image
    navigationItem.titleView = imageView

【讨论】:

以上是关于如何在导航栏后面显示图像?的主要内容,如果未能解决你的问题,请参考以下文章

导航栏和图像显示之间的线

Android 全屏片段不显示导航和状态栏后面的元素

如何让 Flutter 应用在​​ android 导航栏后面绘制并使导航栏完全透明?

跨越导航栏后面的 UIViewController 背景图像?

如何移动导航栏图像?

如何让我的导航栏图像响应我的导航栏