具有固定宽度视图的ScrollView宽度约束

时间:2018-11-15 23:03:26

标签: ios uiscrollview ios-autolayout

我正在使用Swift 4在XCode 10中开发一个应用程序。我已经通过以下方式在iPhone的情节提要中设置了视图(wC,hR):

  • 滚动视图(顶部:超级视图,底部:超级视图,尾部:安全区域,前导:安全区域)

  • 滚动视图内部是一个容器视图:T,B,L,R代表超级视图,宽度等于基本视图(即屏幕)

  • 在容器视图中有几个标签和图像视图。

我对此设置没有问题。

问题是当我对iPad(wR,hR)进行调整时。在这里,我禁用了尾随和前导约束,而是添加了690的宽度约束,并已水平对齐以进行超级视图。当我这样做时,我收到一个约束错误,提示“可滚动内容宽度模糊”。

我相信问题是我正在相对于作为滚动视图的超级视图进行水平对齐,因此没有对基本视图的引用,但是我不确定如何对其进行调整以使其起作用。 / p>

2 个答案:

答案 0 :(得分:0)

尽管意义不大,但是如果您还向Container View添加了水平和垂直居中对齐限制(关于其superviewScroll View,这可能会有所帮助)

这是根据this answer以及我自己与AL的斗争得出的。

答案 1 :(得分:0)

我认为您需要使用两个“容器”视图。

对于iPhone(wC,hR):

  • scrollView-顶部:超级视图,底部:超级视图,尾随:安全区域,领先:安全区域)
  • scrollView的“ SuperContainerView”子视图-顶部/底部/顶部/底部到scrollView(superView),宽度与 scrollView
  • SuperContainerView的“ ContainerView”子视图-SuperContainerView的顶部/底部/顶部/底部

ContainerView子视图上的约束将控制ContainerView的高度,这将控制SuperContainerView的高度,这将控制滚动。

对于iPad(wR,hR):

  • 禁用ContainerView的前导和尾随约束
  • 添加690的宽度约束
  • 向SuperContainerView添加一个CenterX约束

结果...绿色是ContainerView,蓝色是SuperContainerView(滚动视图在每侧的插图8中):

enter image description here

enter image description here

enter image description here

如果要在旋转为横向的手机上运行时最大宽度为690,则需要对wC,hC进行类似的约束修改