在Swift中类似于Instagram主页的任意位置的标签栏

A Tab bar at arbitrary position similar to Home of Instagram, in Swift

澄清一下,我不是在寻找顶部的标签栏。我想知道是否有一个解决方案使用已经存在的东西来创建类似 TabHost/ViewPager in Android for iOS in Swift 的东西;即,该栏可以移动并控制屏幕的一部分(类似于 Android 中的片段)。有很多问题提供了部分解决方案,例如 this and 主要展示了如何将标签栏放在顶部。

我还知道 containerView 应该用于包含作为屏幕一部分的视图;然而,管理视图之间的所有通信并不是一项简单的任务,而且容易出错。下面是一个简单的故事板,展示了这种设计。

我想知道是否有更有效的方法来实现类似于 Instagram 主页中位于屏幕中间的标签栏的功能?感谢您的输入。

就可移动的选项卡栏而言,根据 UIKit,没有现成的东西。您可能会在 https://www.cocoacontrols.com 或类似网站上找到符合要求的内容。

否则,您必须创建自定义 UIView 来处理此问题。

在处理狭缝视图方面,例如顶部和底部,它可能更好地子类化 UIViewController 并让它处理两个容器视图,如您在图像中所示。

至于viewControllers之间的通信,一点也不容易出错。您可以使用响应者链向上传递消息,创建或使用彼此之间的引用,例如self.parentViewControllerself.presentingViewController 以及更复杂的方式 let myViewController = self.presentingViewController!.childViewControllers[0] as? MyViewControllerClass