作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想在导航栏中添加一个横幅,但要增加它的高度。我想复制 Apple Music 应用程序中艺术家页面的设计和行为:
它的行为就像一个普通的大标题,除了它被向下移动,它后面有一个粘性的 UIImageView
并且当用户向下滚动足够远时它会返回它的背景。您可以启动 Apple Music,搜索艺术家并转到他们的页面亲自尝试。
我已经尝试了很多东西,比如在 UINavigationBarLargeTitleView
上设置框架,以及来自这个答案的代码:https://stackoverflow.com/a/49326161/5544222
我已经使用以下代码获取了 UINavigationBarLargeTitleView
及其 UILabel
:
func setLargeTitleHeight() {
if let largeTitleView = self.getLargeTitleView() {
if let largeTitleLabel = self.getLargeTitleLabel(largeTitleView: largeTitleView) {
// Set largeTitleView height.
}
}
}
func getLargeTitleView() -> UIView? {
for subview in self.navigationBar.subviews {
if NSStringFromClass(subview.classForCoder).contains("UINavigationBarLargeTitleView") {
return subview
}
}
return nil
}
func getLargeTitleLabel(largeTitleView: UIView) -> UILabel? {
for subview in largeTitleView.subviews {
if subview.isMember(of: UILabel.self) {
return (subview as! UILabel)
}
}
return nil
}
最佳答案
最初放置一个带有图像和标签的 View 以及播放按钮。然后清除导航栏,它会显示在它下面的图像
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController!.navigationBar.shadowImage = UIImage()
self.navigationController!.navigationBar.isTranslucent = true
稍后当您向上滚动时,您必须手动处理它并再次显示带标题的导航。
关于ios - 增加 UINavigationBarLargeTitleView 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54756433/
我想在导航栏中添加一个横幅,但要增加它的高度。我想复制 Apple Music 应用程序中艺术家页面的设计和行为: 它的行为就像一个普通的大标题,除了它被向下移动,它后面有一个粘性的 UIImageV
我是一名优秀的程序员,十分优秀!