ios – Autolayout和Scrollview宽度固定在屏幕上(不是内容)

ios – Autolayout和Scrollview宽度固定在屏幕上(不是内容),第1张

概述我已经跟踪了一些exmaples(大多数是相同的),例如 https://www.youtube.com/watch?v=UnQsFlMGDsI 我打开新项目,在其中放入一个滚动视图,然后是一个“内容”视图,将滚动视图约束到它的超视图(顶部,底部,左侧和右侧),然后将内容视图约束到滚动视图的内部,然后它的宽度滚动视图超级视图.红色和内容视图中的Scrollview黑色. 我删除了一个Textfie 我已经跟踪了一些exmaples(大多数是相同的),例如 https://www.youtube.com/watch?v=UnQsFlMGDsI

我打开新项目,在其中放入一个滚动视图,然后是一个“内容”视图,将滚动视图约束到它的超视图(顶部,底部,左侧和右侧),然后将内容视图约束到滚动视图的内部,然后它的宽度滚动视图超级视图.红色和内容视图中的ScrollvIEw黑色.

我删除了一个TextfIEld,然后将其约束到内容视图的顶部,前导和尾随.它在故事板中看起来都很好但是当我运行它时,内容视图不存在,textfIEld是其中的对象宽度(基于文本字段).

然后我将内容视图hight更改为固定的800,我现在可以看到内容视图,但宽度是由文本字段的大小(而不是相反)固定的,即如果我添加更多“测试信息”文本全部变宽了.

这不是我真正的项目,但我只想消除原因,所以从头开始这样做,它也是如此.我看不出我错过了什么(希望有一个勾选框).

如果我强制文本字段为700宽,它会向左水平滚动,我看不到如何将内容视图宽度固定到屏幕大小.

解决方法 更新的答案

对我之前发布的答案感到抱歉.我错过了一些观点.在这里,我将逐步向您解释需要做什么(参见截图).

以下是添加了约束的整个视图的概述:

首先要做的是,添加scrollvIEw并为supervIEw添加前导,尾随,顶部和底部的约束.

接下来要做的是,在滚动视图中添加一个UIVIEw.现在这部分很棘手,您刚刚添加的视图需要充当滚动视图的内容视图.因此,您需要添加到滚动视图的任何视图都应该放在此视图中.对于此视图,请设置约束,如top,bottom,leading和trailing.但是这里棘手的部分是,将supervIEw(即,scrollvIEw)的底部约束设置为零,具有低优先级(250).同时将此视图的宽度设置为等于滚动视图的超级视图,即VIEwController的视图以及滚动视图.

内容视图的约束

底部约束设置为零低优先级.

参考scrollvIEw的supervIEw以及滚动视图的相等宽度.

底部约束被设置为低优先级,因为为了滚动工作,当涉及视图的底部约束时,内部视图的约束需要被赋予更高的优先级.

现在在内容视图中添加所需的视图,在您的情况下是文本字段.添加与内容视图相关的所有必需约束(顶部,前导,底部).添加您要添加​​的任意数量的子视图,但请确保为内容视图指定最底部视图的底部约束,该约束也具有所需的优先级.
以下是我在内容视图中添加的文本字段的约束:

请注意,在这种情况下,底部约束是必需的优先级.

最终输出:

黄色= VIEwController的视图,绿色=滚动视图,红色=容器视图,粉红色=文本字段.

对于需要制作水平滚动视图的任何人的注释,只需使用高度切换内容视图的宽度,使用尾随约束切换其底部约束.也就是说,使用supervIEw和scrollvIEw以及pin尾随空间设置相等的高度,以低优先级滚动视图.

总结

以上是内存溢出为你收集整理的ios – Autolayout和Scrollview宽度固定在屏幕上(不是内容)全部内容,希望文章能够帮你解决ios – Autolayout和Scrollview宽度固定在屏幕上(不是内容)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1031403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存