如何创建固定导航栏 iOS Swift
Posted
技术标签:
【中文标题】如何创建固定导航栏 iOS Swift【英文标题】:How to create a fixed navigation bar 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,它看起来像我在问题中发布的图像。
当然可以!要更改它的颜色:***.com/questions/17014713/… 并将文本图块更改为图像(或其他任意视图):***.com/questions/8814056/…
谢谢。所以我应该编码吗?我不介意,但有没有办法在故事板中做到这一点?
您可以更改情节提要中的颜色,但我认为您不能添加图像。要更改情节提要中的颜色,请参考图片:i.imgur.com/tZu9JlH.png
【参考方案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 导航控制器(然后向它添加按钮/格式/等)。这有意义吗?以上是关于如何创建固定导航栏 iOS Swift的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift iOS 中仅在最后一个屏幕上获取导航栏?