【问题标题】:How to create a Page View Controller like Instagram homepage that also scrolls Tab Bar?如何创建一个像 Instagram 主页一样的页面视图控制器,它也可以滚动标签栏?
【发布时间】:2019-03-28 21:48:23
【问题描述】:

我想创建一个像 Instagram 一样的主页,它可以垂直滚动(带有导航控制器、标签栏项目……)到另一个视图控制器。例如,当我从 Instagram 主页向左滑动时,它将滚动到带有另一个标签栏项目的直接消息,并且标签栏也向左移动并被直接消息视图控制器中的新标签栏替换。

我尝试使用 UIPageViewController,但因为我使用了 Tab Bar,所以当我开始滚动时,Tab Bar 保持在原位。如何实现所需的行为?

【问题讨论】:

    标签: swift xcode uitabbar uipageviewcontroller swift4.2


    【解决方案1】:

    由于您提到即使在水平滑动时标签栏仍保持在原位,我相信您的视图控制器层次结构看起来像这样:

    UITabBarController
    └── UIPageViewController
        ├── UIViewController1
        ├── UIViewController2
        ├── .
        ├── .
        ├── .
    

    但是您需要将 Tab Bar Controller 放在 Page View Controller 中,因此您的 View Controller 层次结构会变成这样:

    UIPageViewController
    └── UITabBarController
        ├── UIViewController1
        ├── UIViewController2
        ├── .
        ├── .
        ├── .
    

    【讨论】:

    • 谢谢贝赫达。这对我有用。但是现在的问题是当用户去Tabbarchildren 时,所有children 都有滑动手势并且可以看到UITabBarController兄弟姐妹。我这样做了,但我认为有更好的方法:默认情况下,scrollView 在UIPageViewController 中有isScrollEnabled = false。就在viewWillAppear 在UIViewController1 中,我设置为true
    【解决方案2】:

    您可以像以前一样尝试使用UIPageViewController,并让您的每个页面都是UITabViewController,并且您的视图嵌套在tabviewcontroller 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多