【问题标题】:A Tab bar at arbitrary position similar to Home of Instagram, in Swift在 Swift 中类似于 Instagram 主页的任意位置的标签栏
【发布时间】:2017-01-10 03:30:50
【问题描述】:

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

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

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

【问题讨论】:

  • 也许使用寻呼条

标签: ios swift uitabbarcontroller uicontainerview


【解决方案1】:

就可移动标签栏而言,根据 UIKit,没有什么是开箱即用的。您可能会在 https://www.cocoacontrols.com 或类似网站上找到符合要求的内容。

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

在处理狭缝视图方面,例如顶部和底部,将 UIViewController 子类化并处理两个容器视图可能会更好,就像您在图像中显示的那样。

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

【讨论】:

  • 感谢您的回答,它确实有帮助。我刚刚在 codepath 提供的自定义标签栏上遇到了一个很好的例子。我认为这很好地完成了这项工作。我正要删除我的问题,但我接受你的回答,因为它很有用并关闭它。代码路径示例:github.com/codepath/ios_guides/wiki/Creating-a-Custom-Tab-Bar
猜你喜欢
  • 1970-01-01
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多