如何创建一个像 Instagram 主页一样的页面视图控制器,它也可以滚动标签栏?
Posted
技术标签:
【中文标题】如何创建一个像 Instagram 主页一样的页面视图控制器,它也可以滚动标签栏?【英文标题】:How to create a Page View Controller like Instagram homepage that also scrolls Tab Bar? 【发布时间】:2019-03-28 21:48:23 【问题描述】:我想创建一个像 Instagram 一样的主页,它可以垂直滚动(带有导航控制器、标签栏项目……)到另一个视图控制器。例如,当我从 Instagram 主页向左滑动时,它将滚动到带有另一个标签栏项目的直接消息,并且标签栏也向左移动并被直接消息视图控制器中的新标签栏替换。
我尝试使用 UIPageViewController,但因为我使用了 Tab Bar,所以当我开始滚动时,Tab Bar 保持在原位。如何实现所需的行为?
【问题讨论】:
【参考方案1】:由于您提到即使在水平滑动时标签栏仍保持在原位,我相信您的视图控制器层次结构看起来像这样:
UITabBarController
└── UIPageViewController
├── UIViewController1
├── UIViewController2
├── .
├── .
├── .
但是您需要将 Tab Bar Controller 放在 Page View Controller 中,因此您的 View Controller 层次结构会变成这样:
UIPageViewController
└── UITabBarController
├── UIViewController1
├── UIViewController2
├── .
├── .
├── .
【讨论】:
谢谢贝赫达。这对我有用。但是现在的问题是当用户去Tabbar
children 时,所有children 都有滑动手势并且可以看到UITabBarController
兄弟姐妹。我这样做了,但我认为有更好的方法:默认情况下,scrollView
在UIPageViewController
中有isScrollEnabled = false
。就在viewWillAppear
在UIViewController1
中,我设置为true【参考方案2】:
您可以像以前一样尝试使用UIPageViewController
,并让您的每个页面都是UITabViewController
,并且您的视图嵌套在tabviewcontroller 中。
【讨论】:
以上是关于如何创建一个像 Instagram 主页一样的页面视图控制器,它也可以滚动标签栏?的主要内容,如果未能解决你的问题,请参考以下文章
如何制作像 Instagram 故事个人资料图像一样的圆形图像