具有固定宽度视图的 ScrollView 宽度约束
ScrollView width constraint with fixed width views
我正在 XCode 10 中使用 Swift 4 开发一个应用程序。我已经按照以下方式在故事板中为 iPhone (wC, hR) 设置了我的视图:
滚动视图(上:superview,下:superview,尾:安全区,前导:安全区)
滚动视图内部是一个容器视图:T,B,L,R 到父视图,等宽到基本视图(即屏幕)
容器视图中有几个标签和图像视图。
我对这个设置没有任何问题。
问题出在我对 iPad (wR, hR) 进行调整时。在这里,我禁用了尾部和前导约束,而是添加了 690 的宽度约束,并水平对齐到超级视图。当我这样做时,我收到一个约束错误,显示 "Ambiguous scrollable content width".
我认为问题是我相对于作为滚动视图的超级视图水平对齐,因此没有参考基本视图,但我不确定如何调整它才能正常工作.
虽然它没有多大意义,但如果您还向 Container View
添加对齐水平和垂直中心约束(关于其 superview
,Scroll View
).
这是根据 this answer 和我自己与 AL 的斗争得出的。
我想你需要使用两个"container"个视图。
对于 iPhone (wC, hR):
- scrollView -- Top: superview, Bottom: superview, Trailing: Safe area, Leading: safe area)
- "SuperContainerView" scrollView 的子视图 -- Top/Bot/Lead/Trail 到 scrollView(超级视图),等于 scrollView
的宽度
- "ContainerView" SuperContainerView 的子视图 -- Top/Bot/Lead/Trail 到 SuperContainerView
对 ContainerView 子视图的约束将控制 ContainerView 的高度,这将控制 SuperContainerView 的高度,后者将控制滚动。
对于 iPad (wR, hR):
- 禁用 ContainerView 的前导和尾随约束
- 添加 690 的宽度限制
- 向 SuperContainerView 添加 CenterX 约束
结果...绿色是ContainerView,蓝色是SuperContainerView(滚动视图每边插入8):
如果 phone 上的 运行 旋转到横向时,如果您希望最大宽度为 690,则需要对 wC、hC
进行类似的约束修改
我正在 XCode 10 中使用 Swift 4 开发一个应用程序。我已经按照以下方式在故事板中为 iPhone (wC, hR) 设置了我的视图:
滚动视图(上:superview,下:superview,尾:安全区,前导:安全区)
滚动视图内部是一个容器视图:T,B,L,R 到父视图,等宽到基本视图(即屏幕)
容器视图中有几个标签和图像视图。
我对这个设置没有任何问题。
问题出在我对 iPad (wR, hR) 进行调整时。在这里,我禁用了尾部和前导约束,而是添加了 690 的宽度约束,并水平对齐到超级视图。当我这样做时,我收到一个约束错误,显示 "Ambiguous scrollable content width".
我认为问题是我相对于作为滚动视图的超级视图水平对齐,因此没有参考基本视图,但我不确定如何调整它才能正常工作.
虽然它没有多大意义,但如果您还向 Container View
添加对齐水平和垂直中心约束(关于其 superview
,Scroll View
).
这是根据 this answer 和我自己与 AL 的斗争得出的。
我想你需要使用两个"container"个视图。
对于 iPhone (wC, hR):
- scrollView -- Top: superview, Bottom: superview, Trailing: Safe area, Leading: safe area)
- "SuperContainerView" scrollView 的子视图 -- Top/Bot/Lead/Trail 到 scrollView(超级视图),等于 scrollView 的宽度
- "ContainerView" SuperContainerView 的子视图 -- Top/Bot/Lead/Trail 到 SuperContainerView
对 ContainerView 子视图的约束将控制 ContainerView 的高度,这将控制 SuperContainerView 的高度,后者将控制滚动。
对于 iPad (wR, hR):
- 禁用 ContainerView 的前导和尾随约束
- 添加 690 的宽度限制
- 向 SuperContainerView 添加 CenterX 约束
结果...绿色是ContainerView,蓝色是SuperContainerView(滚动视图每边插入8):
如果 phone 上的 运行 旋转到横向时,如果您希望最大宽度为 690,则需要对 wC、hC
进行类似的约束修改