滚动

时间:2015-07-03 03:03:08

标签: objective-c swift uinavigationbar

我今天看到了这种效果,其中导航栏标题似乎在视图中开始,然后在滚动页面时缩小并向上移动到导航栏的标题,然后在滚动回到时转换到其原始状态顶部。

SoulCycle initial view SoulCycle intermediate view SoulCycle final view

有没有人对如何做到这一点有任何见解?是否使用导航栏,或者是否使用高度缩小且背景颜色变暗的UIView进行模拟?也许标题是转换为UIImage的标签并按比例缩小而不是字体大小减小?

只是推测可能的技术。

很想得到一些意见。提前谢谢。

1 个答案:

答案 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。

只要手势识别器更新其值或滚动位置,就应执行这两个操作。但是,您可能需要或不必重绘视图。