我今天看到了这种效果,其中导航栏标题似乎在视图中开始,然后在滚动页面时缩小并向上移动到导航栏的标题,然后在滚动回到时转换到其原始状态顶部。
有没有人对如何做到这一点有任何见解?是否使用导航栏,或者是否使用高度缩小且背景颜色变暗的UIView进行模拟?也许标题是转换为UIImage的标签并按比例缩小而不是字体大小减小?
只是推测可能的技术。
很想得到一些意见。提前谢谢。
答案 0 :(得分:1)
是的,您可以根据手势识别器更改字体的大小和导航栏的原点。
navigationBar.frame.origin.y = -10
会将导航栏向上移动10个点。可以使用
更改字体if let font = UIFont(name: "Lato-Light.ttf", size: 34) {
UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName: font]
}
这种格式是因为使用强制解包!
会使应用程序崩溃
在此上下文中,font
可以是一个变量,您可以使用相同的字体和不同的大小调用普通的init。
只要手势识别器更新其值或滚动位置,就应执行这两个操作。但是,您可能需要或不必重绘视图。