【问题标题】:How to create a fixed navigation bar iOS Swift如何创建固定导航栏 iOS Swift
【发布时间】:2015-11-02 14:47:26
【问题描述】:

我想创建一个不随 tableViewCells 或我拥有的其他内容滚动的固定标题。标题应该保持在固定的位置,就像在大多数 iOS 应用中一样。

这是我面临的问题的图片:

我尝试将它嵌入到 NavigationController 和 TabViewController 中。那没有用。

我还尝试添加滚动视图。

我提到了这个链接,但它已经过时并且没有帮助:how iphone facebook app make the navigation bar fixed

谢谢。

【问题讨论】:

  • 好吧,UINavigationController 添加了一个系统导航栏,实际上它已经固定到位。你是如何使用它的,然后出了什么问题?你在使用故事板吗?您的导航控制器是初始视图控制器吗?
  • 使用 UINavigationController 我无法编辑导航栏、添加图像或更改颜色。我只能更改文本。现在我使用新的 UINavigationController 对其进行了测试。导航控制器是初始视图控制器。我无法在情节提要中对其进行编辑。目前,我正在使用带有导航栏的 ViewController,它看起来像我在问题中发布的图像。
  • 当然可以!要更改它的颜色:stackoverflow.com/questions/17014713/… 并将文本图块更改为图像(或其他任意视图):stackoverflow.com/questions/8814056/…
  • 谢谢。所以我应该编码吗?我不介意,但有没有办法在故事板中做到这一点?
  • 您可以更改情节提要中的颜色,但我认为您不能添加图像。要更改情节提要中的颜色,请参考图片:i.imgur.com/tZu9JlH.png

标签: ios xcode swift autolayout uistoryboard


【解决方案1】:

我真的建议在你弄明白之前玩弄导航控制器,这确实是最好的方法。如果您已嵌入它,我会使用属性检查器检查您的视图,以确保启用所需的一切。

但是,我以前使用过另一种方法。创建一个新的 ViewController,并在其中创建两个视图。一个是您的 FakeNavBar,另一个是保存您的数据的 container/TableView

将这两个都添加到新 VC 后,只需正常设置它们,然后宾果游戏! 对此的一个提示是,NavBar 通常是 64 点高,所以你的假条将是这样的:

fakeNavBar.frame = CGRectMake(0, 0, theWidth, 64)
tableView.frame = CGRectMake(0, 64, theWidth, theHeight-64)

您的视图层次结构将如下所示:

【讨论】:

  • 有趣...会试试这个。
  • NavBar 无法正常工作时效果很好,如果您需要更多信息,请告诉我。
  • 遇到一些问题。当我嵌入 viewController 时,单元格会像这样向上移动:postimg.org/image/r90dnesvl + postimg.org/image/a9ix9yffd 当我将它设置得更高时(由于某种原因,我找不到让我让单元格更低的约束),单元格仍然没有位置太高了。
  • 另外,我应该创建一个 ViewController,而不是一个 Navigation Controller?
  • 嗯,它们是我在回答中描述的两种方法,可以帮助您实现目标:1 是嵌入导航控制器(但您不需要为此创建新页面) , 和 2 是制作一个新的 ViewController,并将你的 tableview 和一个从 UIView 创建一个 FAKE 导航控制器(然后向它添加按钮/格式/等)。这有意义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 2023-04-01
  • 2018-12-31
  • 2019-12-15
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多