问题描述
如何像在 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,height: 300 - height)
}
解决方法
观看此视频 (https://www.youtube.com/watch?v=rNy6aQQYbuY),非常容易实现。