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

Is it possible to place a UIToolbar below a UICollectionView without a UINavigationController?

我有一个包含 UICollectionView 和 UIToolbar 的 UICollectionViewController。我想将 UIToolbar 放在 UICollectionView 下方(在屏幕底部)。

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

我知道我可以做到这一点 with a NavigationController,但我也了解到导航控制器用于下钻行为。我不想要那个——这个工具栏中的项目不一定会改变视图。此外,NavigationController 似乎会使我的代码比必要的更复杂。

请注意,我的 UIToolbar 是以编程方式添加的。我也尝试过将它添加到情节提要中,但我不知道如何将工具栏放置在我的视图中。这是我的故事板:

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

question/answer 使工具栏看起来可以 "snapped" 到正确的位置,或者滚动视图可以 "re-sized",但我没有看到这种行为。

如果您创建了一个 UICollectionViewController,那么 UICollectionView 就是主视图,因此您不能在它上面或下面放置东西,这就是为什么您不能将 UIToolbar 拖到视图上的原因。

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