Ios 为UIViewController设置边距/约束

Ios 为UIViewController设置边距/约束,ios,iphone,uiviewcontroller,xamarin,Ios,Iphone,Uiviewcontroller,Xamarin,有没有办法为UIViewController设置边距或约束 我有这个结构 UIWindow - UINavigationController - UICollectionView 我希望布局使UINavigationController不使用状态栏下的空间,而UICollectionView不使用UINavigationController中我的自定义工具栏下的空间 有没有类似于将视图控制器设置为视图的方法来设置视图控制器的约束(以编程方式)?或者通过其他方式实现这种行为 My UICo

有没有办法为UIViewController设置边距或约束

我有这个结构

UIWindow
 - UINavigationController
  - UICollectionView
我希望布局使UINavigationController不使用状态栏下的空间,而UICollectionView不使用UINavigationController中我的自定义工具栏下的空间

有没有类似于将视图控制器设置为视图的方法来设置视图控制器的约束(以编程方式)?或者通过其他方式实现这种行为

My UICollectionView具有不同的背景色,当前也在状态栏下设置。

对于集合视图(以及表视图和其他
UIScrollView
子类),您确实希望它们显示在导航栏和状态栏下,因此(如果状态栏是半透明的)当您滚动时,内容将被浏览

你不想让内容卡在这些栏下,这样就看不见了。您可以通过设置滚动视图的
contentInset
属性来实现这一点,这样内容就不需要滚动视图的顶部可见

下面是如何设置
contentInset
属性,使内容不会干扰顶部的状态栏和导航栏以及底部的选项卡栏:

 self.collectionView.contentInset = UIEdgeInsetsMake(64.0f, 0.0f, 49.0f, 0.0f);

您不能在控制器上设置约束,只能在视图上设置约束,因此问题的解决方案是在视图上设置适当的约束,以实现所需的层次结构。如何在视图上设置约束,使集合视图(最好是导航控制器)不被放置在状态栏下?