【问题标题】:Swift - Putting something like a UIPageViewController on top of screenSwift - 将 UIPageViewController 之类的东西放在屏幕顶部
【发布时间】:2018-03-08 17:34:10
【问题描述】:

在高中时,我们正在学习如何使用 Xcode 构建用户界面。 作为家庭作业,我们必须选择一个现有的应用程序并仅使用默认控件和 Main.storyboard 重新构建它(不允许使用代码和自定义类)。

我选择了 Twitter 的 UI:

如您所见,顶部有一个 TabBarController,其中包含三个 TabBar 项(TOP、MENTIONS、VERIFIED)。

根据其他线程,如果不使用自定义类或其他代码,您将无法更改 UITabBarController 的位置。

什么是简单的解决方法?我正在考虑使用普通按钮而不是UITabBarItems,但是我必须为按钮实现代码以对用户交互做出反应。

【问题讨论】:

  • 下面是 3 个 UITabBarItem 项,顶部是视图中的 3 个常规按钮

标签: ios swift xcode user-interface uitabbarcontroller


【解决方案1】:

Twitter 是一个复杂的 UI,因为他们在其中做了很多自定义的事情。但是,这里有几个 cmets: 1)您引用的按钮(TOP、MENTIONS、VERIFIED)不是 TabBarController。带有 3 个图标(ENGAGE、UNDERSTAND、POSTS)的底部栏是 TabBarController,创建起来并不难。

2) 可以使用 UISegmentControl 创建按钮(TOP、MENTIONS、VERIFIED)。但是,他们已经定制了它的外观。默认情况下,它看起来像这样:

Apple Docs for SegmentControl

这是关于改变外观的stackoverflow讨论:

How to display only bottom border for selected item in UISegmentedControl?

3) 该视图上的其他项目可以使用 UITableView 创建,但这些是您必须构建的自定义单元格,听起来会违反您的分配规则。

有很多关于如何创建和使用自定义 uitableview 单元格的示例,例如这个:

Making Apple Pie

希望对你有帮助!!!

更新#2: 由于您不能使用代码,因此无法创建表格视图。您可以在情节提要中放置一些控件来缩小这些表格视图单元格。例如,删除 UIImageViews(带图片)、UILabels(带文本),用于回复、转发、收藏的图标也是 UIImageViews。可以通过放置高度为 1 且背景颜色为灰色的 UIView 来创建灰线。

【讨论】:

    【解决方案2】:

    3 个 UITabBarItem(参与、理解、帖子)位于最底部。 顶部只有一个视图中的 3 个常规按钮。

    所以你认为肯定会起作用的,只使用 SuperView 中的普通按钮,你不需要为此编写代码,只需使用以下约束:

    • SuperView(顶部、前导、尾随、高度 (40-50) 约束)
    • Button-1(通往超级视图,宽度至超级视图(乘数 0.33))
    • Button-3(拖到超级视图,宽度到超级视图(乘数 0.33))
    • Button-2(在 button-1 前面,在 button-3 后面)

    • 所有 3 个按钮的 2 个约束:

      • 顶部到超级视图
      • 从底部到superview

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多