UIScrollView位置元素位于屏幕底部,而不是ScrollView的底部

时间:2015-02-09 13:33:06

标签: ios swift uiscrollview autolayout

我使用自动布局,并且我有一个UIScrollView,我想最初将UIButton放在靠近屏幕底部的位置,与我的ScrollView的实际内容大小无关。

即。如果滚动视图内容不多,则应将其扩展为填充屏幕并将按钮放在底部。

如果滚动视图的内容多于屏幕上的内容,则该按钮最初应位于完全相同的位置,但滚动显示内容的其余部分。

我尝试计算可见空间的高度,但我无法通过自动布局来实现...

1 个答案:

答案 0 :(得分:1)

如果按钮将与其余内容一起滚动,那么scrollView内容视图中的内容必须考虑到按钮位置的任何位置 - 否则按钮将覆盖该内容或它将掩盖按钮。

为了您的目标,方便地使用scrollViews,如果contentView不超过任一轴上的帧,则scrollview不会滚动(因为没有任何内容可以滚动),它只会显示。

因此,在您的滚动视图中,将您的按钮设置为与superview.top垂直间隔的数量,如果您的按钮是最高Y视图,则constrant.constant +按钮高度不会高于滚动视图的框架。

如果您的方法是将视图添加到thescrollview nad,然后在添加时添加对象,当将内容添加到滚动视图时,他们需要检查它们是否会与按钮重叠或位于其下方,如果因此,将它们的垂直约束附加到button.bottom或附加到button.bottom上的东西,而不是superview.top或附加到superview.top上面的东西。如果事物的高度不同,那么这种方法是不可持续的,因为你无法提前计算,你需要重新思考。

无论按钮位于何处,如果它将与内容一起滚动,则无法绕过此步骤:内容需要围绕它定位,否则它将与其中一些重叠,反之亦然。