在 Xcode 中使用弹簧和支柱的 UIScrollView

UIScrollView in Xcode using Springs and Struts

提问人:Mohammad Aamir 提问时间:12/20/2018 最后编辑:CœurMohammad Aamir 更新时间:12/21/2018 访问量:395

问:

我正在使用 swift 语言以及 Spring 和 Struts 进行定位,在 iOS 中管理一个应用程序。出于某些原因,我不得不在其中使用。但是我找不到使用“弹簧和支柱”布局定位技术实现的正确方法。UIScrollView

我将视图设置为“FreeForm”,然后将高度设置为 1000 像素,但所有内容都以相同的屏幕尺寸显示。heightContent View

This is my simulator screen

This is what I am doing in Xcode story board

iOS iPhone Swift Xcode UIscrollView

评论

0赞 Naresh 12/20/2018
我不明白你的问题,但你试试我的答案 stackoverflow.com/questions/48068995/......
0赞 Mohammad Aamir 12/20/2018
@iOS 您已经使用自动布局完成了此操作,我没有使用自动布局。我正在使用弹簧和支柱来做到这一点
0赞 Naresh 12/20/2018
好的,我明白了......
0赞 Mohammad Aamir 12/20/2018
您以前@iOS使用过自动布局以外的 ScrollView 吗?

答:

1赞 user1981921 12/20/2018 #1

“FreeForm”的设置仅适用于界面构建器,因此您可以完整地查看滚动视图中的所有内容,但不会反映在您的应用上。

滚动视图的高度取决于它的内容,因此您需要自上而下添加元素,以便它变得更大。

评论

0赞 Mohammad Aamir 12/20/2018
那么,在故事板中使用弹簧和支柱执行此操作时,我必须进行哪些更改
2赞 RLoniello 12/20/2018 #2

不再建议使用 Struts 和 Springs,您应该使用 AutoLayout

但是,如果您必须:

1) 禁用/取消选中视图控制器中的“使用自动布局”,这也将禁用特征变化。Files Inspector

2) 在视图控制器中将模拟大小更改为“固定”。确保在视图控制器的 Size 的 Simulated Metrics 设置为 “Inferred”。Size InspectorAttributes inspector

3)添加视图并设置自动调整大小蒙版的“支柱和弹簧”,以告诉视图如何在其超视图中增长和收缩。

4) 将视图所需的框架矩形设置为相对于其超级视图的位置。

Assistant Editor View of Xcode

您必须手动设置滚动视图的高度,因为没有其他视图来约束框架并允许自动调整大小。为此,请在视图控制器加载后设置 scrollView 的内容大小。请参阅否则,布局引擎无法确定按钮顶部与其超级视图 (scrollView) 顶部之间的垂直间距。viewDidAppear(_:)

ScrollView AutoResizing Mask Button AutoResizing Mask Simulator View

同样,这是不可取的,您应该考虑迁移到自动布局。

评论

0赞 BangOperator 12/20/2018
鉴于您和 OP 表示在您说“弹簧和支柱”时自动调整蒙版大小,该应用程序不会仅仅因为您使用自动调整大小而不是自动布局而被拒绝。
0赞 RLoniello 12/20/2018
不,假设布局实现正确,OP 的审查过程应该没有问题。不是简单地使用自动调整大小。但是,对于干扰常规布局注意事项的多个设备的布局问题,这些准则在 iOS7 之后进行了更改,以包括该布局的设计和行为(在旋转和用户交互期间)。
0赞 RLoniello 12/20/2018
@BangOperator我从帖子中删除了该声明,但我觉得它没有传达正确的信息,也没有为它增加很多价值,如果没有事先了解自动布局的历史,它可能会产生误导。