Swift - 在屏幕上放置类似UIPageViewController的东西

时间:2018-03-08 17:34:10

标签: ios swift xcode user-interface uitabbarcontroller

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

我选择了推特的UI:

enter image description here

正如您所看到的,顶部有一个TabBarController,有三个TabBar项目(TOP,MENTIONS,VERIFIED)。

根据其他主题,您无法在不使用自定义类或其他代码的情况下更改UITabBarController的位置。

什么是轻松的工作?我正在考虑使用普通按钮而不是UITabBarItem,但是我必须实现按钮代码以对用户交互作出反应。

2 个答案:

答案 0 :(得分:0)

Twitter是一个棘手的UI,因为它们在其中做了很多自定义的事情。但是,这里有几条评论: 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: 由于您无法使用代码,因此创建了一个tableview。您可以在故事板中放下一些控件来缩小这些tableview单元格。例如,删除UIImageViews(带图片),UILabels(带文本),回复,转发,收藏的图标也是UIImageViews。可以通过删除高度为1且背景颜色为灰色的UIView来创建灰色线条。

答案 1 :(得分:0)

3 UITabBarItem(Engage,Understand,Posts)位于最底层。 在顶部只有3个常规按钮。

所以你认为肯定会工作,只使用 SuperView 中的常规按钮,你不需要代码,只需使用以下约束:

  • SuperView(Top,Leading,Trailing,Height(40-50)约束)
  • 按钮-1(导致超级视图,宽度到超级视图(乘数0.33))
  • 按钮-3(追踪到超级视图,宽度到超级视图(乘数0.33))
  • 按钮-2(通向按钮-1,拖至按钮-3)

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

    • 超级视图
    • 从底层到超级视图