是否可以在没有UINavigationController的情况下将UIToolbar放在UICollectionView下面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以在没有UINavigationController的情况下将UIToolbar放在UICollectionView下面?相关的知识,希望对你有一定的参考价值。

我有一个UICollectionViewController,它包含一个UICollectionView和一个UIToolbar。我想把UIToolbar放在UICollectionView下面(在屏幕的底部)。

我现在拥有的是UICollectionView,一直到屏幕的底部,UIToolbar放在zorder的顶部。在下图中,集合视图在工具栏下方延伸。

Toolbar on top of a CollectionViewController

我知道我可以做这个with a NavigationController,但我也读过导航控制器用于向下钻取行为。我不希望这样 - 此工具栏中的项目不一定会更改视图。此外,似乎NavigationController会使我的代码比必要的更复杂。

请注意,我的UIToolbar是以编程方式添加的。我也尝试在故事板中添加它,但我无法弄清楚如何将工具栏放在我的视图中。这是我的故事板:

enter image description here

我无法将工具栏拖动到视图中,当我运行它时,故事板工具栏不会出现。

这个question/answer看起来工具栏可以“捕捉”到正确的位置,或者滚动视图可以“重新调整大小”,但我没有看到这种行为。

答案

如果你已经创建了一个UICollectionViewController,那么UICollectionView就是主视图,因此你不能把它放在它下面,这就是你不能将UIToolbar拖到视图上的原因。

您需要做的是创建一个符合UICollectionViewDataSource和UICollectionViewDelegate协议的UIViewController。这将有一个UIView作为它的主视图,你可以添加一个UICollectionView和一个UIToolbar并根据需要定位它们。不要忘记还将UICollectionView的数据源和委托链接到您的UIViewController。

以上是关于是否可以在没有UINavigationController的情况下将UIToolbar放在UICollectionView下面?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 UINavigationController 隐藏 UINavigationBar?

如何随意显示地图?

UINavigationBar下的多个UITableView

如何在这个嵌套流中正确访问 tabBarController?

自定义更多视图控制器

Swift3.0:照片选择