当您转到本机iOS音乐应用程序时,您会发现查看相册时效果非常酷。
看起来该视图是一个具有透明UINavigationController的UITableView,当您向上滚动时,视图的第一行会消失并进入带有相册标题的导航栏。
这里到底发生了什么,是否有一个已知的框架可以做到这一点?
答案 0 :(得分:1)
我没有找到任何组件,所以我试着自己实现一些东西。
基本上,我在故事板中设置了一个自定义标题视图,并将其约束到导航栏,并附带约束的出口。
然后在scrollView委托中,我根据滚动量和scrollView的contentOffset调整约束的常量值以及标题和导航栏标题的alpha。
我在这里提出了一个示例项目:
答案 1 :(得分:0)
这里有一些事情在起作用。
如果我要实现这个,我首先会在我的UITableViewController
子类中设置一个观察者,观察UITableView
。更具体地说,观察tableview的y
位置或当前首次公开的indexPath
。然后标题视图(专辑封面,分享,收藏等)将在y
位置的相关性中进行动画处理。标题视图的alpha也会在此处更改。也在改变;标题视图有多少暴露给用户。标题视图是UITableviewController
的属性,可以在动画进行时进行操作。变化率可以通过UIGestureRecognizer
的速度推导出来(这里有一个提示:Implement velocity in custom UIGestureRecognizer)。
至于导航栏,我会将相册名称设置为导航栏标题(在演示文稿中),但保持隐藏状态。动画完成后(y
位置高于某个阈值),将导航栏的标题设置为不隐藏。