如何在导航栏后面显示图像?
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
【讨论】:
以上是关于如何在导航栏后面显示图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Flutter 应用在 android 导航栏后面绘制并使导航栏完全透明?