像 Swift 中的 Apple Music 一样的 NavigationBar

问题描述

如何像在 Apple Music 中那样做 NavigationBar?

enter image description here

我的代码一开始还不错,但是滚动时它不起作用。任何想法如何做到这一点?我试图找到一些信息,但不能。

import UIKit


class ViewController: UIViewController {

@IBOutlet weak var tableView: UITableView!

let backImageForDefaultBarMetrics = UIImage(named: "gaga")!

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.delegate = self
    tableView.dataSource = self
    let navigationBar = navigationController!.navigationBar


    let largeTitleAppearance = UINavigationBarappearance()


    largeTitleAppearance.configureWithOpaqueBackground()
    largeTitleAppearance.backgroundColor = UIColor.clear
    largeTitleAppearance.shadowColor = UIColor.clear
    largeTitleAppearance.backgroundImage = UIImage(named: "gaga")

    navigationBar.standardAppearance = largeTitleAppearance
    navigationBar.scrollEdgeAppearance = largeTitleAppearance
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
     self.navigationController?.navigationBar.frame = CGRect(x: 0,y: 0,width: self.view.frame.width,height: 300)
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    let height = scrollView.contentOffset.y
    self.navigationController?.navigationBar.frame = CGRect(x: 0,height: 300 - height)

}

解决方法

观看此视频 (https://www.youtube.com/watch?v=rNy6aQQYbuY),非常容易实现。