Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.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 如何为不使用';不要占据整个父视图_Ios_Interface Builder_Scrollview_Ios Autolayout - Fatal编程技术网

Ios 如何为不使用';不要占据整个父视图

Ios 如何为不使用';不要占据整个父视图,ios,interface-builder,scrollview,ios-autolayout,Ios,Interface Builder,Scrollview,Ios Autolayout,我正在尝试构建类似ios照片库的UI:导航视图控制器,滚动视图占据父视图的80%高度和100%宽度,集合视图控制器占据其余高度和100%宽度。下面是它的样子: 蓝色区域是scrollview及其内容视图。底部是一个集合视图,其行为类似于旋转木马。您可以在以下屏幕截图中看到我设置的约束: : 我想设置scrollview高度,使其仅占据父视图属性的80%,而集合视图占据其余部分。但是,我似乎无法解决scrollview约束问题,例如autolayout无法解决scrollview的高度/y位置。

我正在尝试构建类似ios照片库的UI:导航视图控制器,滚动视图占据父视图的80%高度和100%宽度,集合视图控制器占据其余高度和100%宽度。下面是它的样子:

蓝色区域是scrollview及其内容视图。底部是一个集合视图,其行为类似于旋转木马。您可以在以下屏幕截图中看到我设置的约束:

:

我想设置scrollview高度,使其仅占据父视图属性的80%,而集合视图占据其余部分。但是,我似乎无法解决scrollview约束问题,例如autolayout无法解决scrollview的高度/y位置。如上图所示,我尝试将scrollview的高度设置为父视图的50%,但autolayout仍然抱怨无法解析高度。如果我让interface builder解决这个问题,它只会在scrollview中为内容视图添加间距,并将其向下推。您可以在下面的屏幕截图中看到这一点


正如我从上面看到的,请执行以下操作

  • 向scrollview添加前导、尾随和顶部约束
  • 添加高度约束,即从scrollview拖动到superview并添加等宽,在等宽约束中,将倍数更改为0.8
  • 针对superview向集合视图添加前导、尾随、底部约束,针对scrollview向集合视图添加垂直空间约束

  • 您的视图继承人权限设置正确,因此非常好,并且您在添加约束的正确轨道上。我将从步骤1开始编写所有约束

    • UIScrollView
      中,向
      superView
      添加顶部、前导和尾随约束。还可以在
      UIScrollView
      superView
      之间添加等高约束,并将乘数设置为0.8
    • 现在将您的
      UICollectionView
      添加到
      UIScrollView
      下面,并为其指定一个
      超级视图的前导、尾随和底部。同时在
      UICollectionView
      UIScrollView
      之间添加垂直间距
    • 现在,在
      UIScrollView
      中添加contentView。将contentView的前导、顶部、底部和尾部添加到
      UIScrollView
      。一旦您这样做,约束就会中断,Xcode就会抱怨现在您需要做的是在
      UIScrollView
      和contentView之间添加一个相等的高度和宽度约束。将此等高约束的优先级设置为250左右(假设您想要垂直滚动),以便在
      UIScrollView
      中的内容变得太大而无法完全显示时,该约束会中断
    现在就额外的间距问题而言。您需要做的是,选择包含
    UIScrollVIew
    UIViewController
    ,然后为此
    UIViewController
    选择属性检查器,然后取消选中调整滚动视图插入选项。有关屏幕截图,请检查


    我没想到会有这么全面的答复。非常感谢你!我以前从未使用过优先级,你的回答教会了我一些新的东西。也谢谢你。