Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否可以在没有UINavigationController的情况下将UIToolbar放置在UICollectionView下方?_Ios_Objective C_Uiviewcontroller_Uitoolbar - Fatal编程技术网

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

Ios 是否可以在没有UINavigationController的情况下将UIToolbar放置在UICollectionView下方?,ios,objective-c,uiviewcontroller,uitoolbar,Ios,Objective C,Uiviewcontroller,Uitoolbar,我有一个UICollectionViewController,其中包含一个UICollectionView和一个UIToolbar。我想将UIToolbar放在UICollectionView下面(屏幕底部) 我现在拥有的是一直到屏幕底部的UICollectionView,以及在zorder中位于其顶部的UIToolbar。在下图中,集合视图延伸到工具栏下方 我知道我可以做到这一点,但我也读到导航控制器用于向下钻取行为。我不希望这样-此工具栏中的项目不一定会更改视图。此外,Navigation

我有一个UICollectionViewController,其中包含一个UICollectionView和一个UIToolbar。我想将UIToolbar放在UICollectionView下面(屏幕底部)

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

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

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

我无法将工具栏拖动到视图中,运行此操作时,脚本工具栏不会出现


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

如果已创建UICollectionViewController,则UICollectionView是主视图,因此不能将内容放在其上方或下方,因此不能将UIToolbar拖到视图上


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

谢谢。我这样做了,甚至没有听起来那么痛苦。仅供参考,我确实发现了这种方法的一个问题。似乎在调用嵌入式UICollectionView.layoutSubview方法之前调用了UIViewController.viewDidLayoutSubviews。大概控制器只关注它的即时视图(尽管函数的名称似乎不太好)由于collectionView没有UICollectionViewController,因此不清楚在何处捕获此事件。不过,好的一点是,您可以在UIViewController.ViewDidLayoutSubView中调用UICollectionView.setNeedsLayout和UICollectionView.LayoutIfNeeds,以使UICollectionView.layoutSubview在该点发生。好的,我将尝试。我发现这个问题是因为我使用UIScrollView.setContentOffset将滚动视图居中,而它的工作方式与以前不同。滚动视图的边界不是同时设置的,所以我开始摆弄不同的位置来设置偏移量。