首页 > 解决方案 > Swift 中类似 Apple Music 的 NavigationBar

问题描述

如何像 Apple Music 中那样做 NavigationBar? 在此处输入图像描述

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

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, y: 0, width: self.view.frame.width, height: 300 - height)

}

标签: swiftuinavigationbarapple-music

解决方案


看看这个视频(https://www.youtube.com/watch?v=rNy6aQQYbuY),很容易实现。


推荐阅读