swift - 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)
}
解决方案
看看这个视频(https://www.youtube.com/watch?v=rNy6aQQYbuY),很容易实现。
推荐阅读
- python - 查询具有数字字段的表时出现模块错误
- go - 转换为多个匿名接口是否等同于类型切换?
- javascript - 正则表达式中lookbehind的Javascript替代方法
- python - Python Beautifulsoup UnicodeDecodeError
- python - 如何根据 measued_at 列获得摄氏度的平均值?
- mysql - 已解决-续集-ORM-关联不起作用
- python - Tkinter Entry .get 从定义
- azure-ad-b2c - 由于缺少声明信息,向 Azure AD B2C 自定义策略注册失败
- node.js - Discord.js TypeError:无法读取未定义的属性“添加”
- postgresql - Postgres Copy To CSV Array 是双引号