Zan*_*ith 5 uinavigationbar uinavigationcontroller ios swift
我想向导航栏添加一个横幅,但要增加它的高度。我想复制 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
}
Run Code Online (Sandbox Code Playgroud)
vis*_*hia -1
最初放置一个带有图像、标签和播放按钮的视图。然后清除导航栏,它将显示其下方的图像
self.navigationController!.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController!.navigationBar.shadowImage = UIImage()
self.navigationController!.navigationBar.isTranslucent = true
Run Code Online (Sandbox Code Playgroud)
稍后,当您向上滚动时,您必须手动处理它并再次显示带标题的导航。
归档时间: |
|
查看次数: |
942 次 |
最近记录: |