iOS 11 导航栏滚动

Posted

技术标签:

【中文标题】iOS 11 导航栏滚动【英文标题】:iOS 11 navigationbar scroll 【发布时间】:2017-08-29 18:45:18 【问题描述】:

所以,设置如下所示: 我想要一个导航栏和三个collectionViews。我希望能够水平滚动浏览集合视图,并且在垂直滚动时,navigationBar 大标题动画也应该触发。

我尝试过的: 我的第一次尝试是创建一个 Horizo​​ntally.scrolling collectionView,其单元格具有整个视图的大小,并且在每个单元格中都会有另一个可以垂直滚动的 collectionView。现在,这对我的目的很有效,但大标题保持相同的大小 - 据我了解,这是因为它没有收到任何垂直滚动事件,因为我的垂直滚动的 collectionViews 嵌入在主 collectionView 中。

看起来像这样:https://giphy.com/gifs/50hYRx71XSdYA/html5

然后我尝试了另一种方法。我用一个垂直滚动的 collectionView 创建了 pageViewController 和两个 v​​iewController。而且......它也没有工作。这次如果有 pageCurl 动画,导航标题 DID 动画 - 但我不想要 pageCurl 动画,你可以在这里看到:https://giphy.com/gifs/jFmOpEtUOyxtC/html5 将动画更改为 .scroll 只是禁用了标题动画:https://giphy.com/gifs/l0IsGVhKKb0lzomqc/html5

我找不到办法做到这一点,你们有什么想法吗?

谢谢!

【问题讨论】:

【参考方案1】:

不幸的是,新的自折叠导航栏在后台使用了一些私有的 Apple 魔法来挂钩到视图控制器的***滚动视图,因此您不能按照您所描述的方式使用这种机制。

【讨论】:

以上是关于iOS 11 导航栏滚动的主要内容,如果未能解决你的问题,请参考以下文章

iOS 11:带有不透明导航栏的导航控制器内带有滚动视图的弹出视图控制器在转换期间导致奇怪的内容动画

iOS TableViewController 滚动离开状态栏下的内容和导航栏

Swift ios导航栏在被滚动隐藏后不会出现

iOS 11、状态栏、导航栏和 UIScrollview

在 iOS 11 中使用增加的导航栏标题

在ios中滚动时放大和缩小导航栏