在 Android 中,使用 ScrollView 作为 XML 文件中的根,然后在其中包含许多其他不同类型的视图,以允许滚动行为。
Swift 2.1 和 Xcode 7.1.1 是如何做到这一点的,因为故事板的长度不足以插入我想要放入的所有不同类型的视图,就像我在 Android 的 XML 代码中所做的那样?
我正在考虑带有 Android 大脑的 iOS :(
在 Android 中,使用 ScrollView 作为 XML 文件中的根,然后在其中包含许多其他不同类型的视图,以允许滚动行为。
Swift 2.1 和 Xcode 7.1.1 是如何做到这一点的,因为故事板的长度不足以插入我想要放入的所有不同类型的视图,就像我在 Android 的 XML 代码中所做的那样?
我正在考虑带有 Android 大脑的 iOS :(
故事板足够长:
您需要做的就是创建一个自由形式的视图,使用自上而下的 Autolayout 约束放置所有内容是该自由形式的视图,并将该视图用作您的UIScrollView
.
教程
UIScrollView
UIView
作为子视图添加到UIScrollView
UIView
. 确保您可以使用与 4. 和 6.锚定的 top & superview.width和superview.height相对于内容的相同规则从上到下(以及从左到右)一直跟踪 AutoLayout 约束链。方法
使用以下结构创建视图层次结构:
UIView
(由UIViewController
UIScrollView
滚动条(必须与根的关系拉伸)UIView
(这将决定滚动条滚动条和区域)了解什么决定了内容的大小
了解边到边 AutoLayout 约束连续性规则
使外壳尺寸相对于封闭的视图(您在示例中垂直实现的目标):
► 在GitHub 上找到此解决方案,并在Swift Recipes上找到更多详细信息。
界面构建器对象库中还有一个适用于 iOS 的滚动视图:
1:转到您的视图控制器并单击属性检查器。
2:将 Size 更改为 Freeform 而不是 Inferred。
3:转到该故事板上的主视图,而不是您的滚动视图,而是顶级视图。
4:单击尺寸检查器并将此视图设置为您想要的尺寸。我把身高改成了1000。
现在你会看到你的故事板有你的视图设置,所以你可以看到滚动的整个高度以便于设计。
5:放在滚动视图上并拉伸它,使其占据整个视图。您现在应该有一个大小为 320,1000 的滚动视图位于视图控制器中的视图上。
现在我们需要让它滚动并且需要让它正确显示内容。
6:单击您的滚动视图,然后单击身份检查器。
7:添加一个用户定义的运行时属性,其 KeyPath 为 contentSize,然后输入 SIZE 并输入您的内容大小。对我来说是 (320, 1000)。
因为我们想在故事板上看到我们的整个滚动视图,所以我们拉伸了它,它有一个 320,1000 的框架,但是为了让它在我们的应用程序中工作,我们需要将框架更改为可见的滚动视图。
8:添加一个带有 KeyPath 框架的运行时属性,类型为 RECT 和 0,0,320,416。
现在,当我们运行我们的应用程序时,我们将看到一个可见的滚动视图,其帧数为 0,0,320, 416,并且可以向下滚动到 1000。我们能够按照我们希望它们出现的方式在 Storyboard 中布局我们的子视图和图像等等。然后我们的运行时属性确保正确显示它。所有这一切都无需 1 行代码。
这是你想的吗?
如果您希望滚动视图更改大小,我建议您尝试以下操作:
您要做的是将滚动视图拖放到视图控制器上并添加约束。
我以前从未使用过滚动视图,所以这可能行不通。