在ScrollView Swift

时间:2015-08-27 16:42:43

标签: ios xcode swift

我目前正在使用Xcode 6中的Storyboard视图。我有一个带有多个按钮元素的ScrollView容器。我希望有一排3个元素,第一个和最后一个对齐到它们各自的(左或右)边缘。

我遇到的问题是第3个元素。我已将其尾随空格设置为10到Superview,但该元素不会出现在屏幕上。对于所有边,ScrollView的约束设置为0。

我在没有ScrollView的情况下完成了相似的操作并且间距设置正确,只是在ScrollView中它没有正确对齐。

2 个答案:

答案 0 :(得分:5)

ScrollView以不同方式处理约束。它使用前导/尾随约束来确定内容可以滚动多远。因此,当您使用常量== 10创建尾随约束时,滚动视图会认为,如果您的视图不适合水平放入ScrollView,并且用户尝试滚动它们,则右侧第3个空白区域应该有10个点图。

如果我理解正确,您希望三个视图适合屏幕(水平)。在这种情况下,除了前导/尾随约束之外,还必须以某种方式设置它们的宽度。

最实用的方法(从我的角度来看)是在scrollView中添加某种contentView,以便其他视图成为该contentView的子视图。然后将contentView中的前导/尾随约束添加到scrollView 和contentView的宽度约束(例如,带有const == 0和contentView.width == scrollView.width的前导/尾随约束) 。然后,您可以像往常一样将视图添加为contentView的子视图。

答案 1 :(得分:1)

在scrollView中放置一个视图。 在视图上设置约束 前,后,上,下,高,宽。

在该视图中添加按钮,根据需要设置约束。它们将正确显示。

管理scrollView contentSize只是更新容器视图的约束(你在scrollView中添加了它) 就像你不想要水平滚动一样,然后像

一样更新
self.myViewWidthConstraint.constant =320;
[self.myView updateConstraints];