将UIScrollView的高度调整为屏幕高度?

时间:2016-08-13 22:33:15

标签: ios iphone swift xcode uiscrollview

enter image description here

黑色 - 屏幕框架/尺寸

红色 - 默认UIScrollView的框架/尺寸

黄色 - 我的按钮。

我想始终将该按钮保留在底部。所以例如在3.5英寸的屏幕上,滚动可用,按钮在底部,没问题。现在,当我们移动到5.5英寸屏幕时,它变得像在这个图像中,按钮不再在底部。我想要做的是更改UIScrollView的高度,但它不起作用:

if(self.view.frame.height > contentView.frame.height)
    {
        print("fixing scroll view")
        contentView.frame = CGRectMake(0, 0, self.view.frame.width, self.view.frame.height * 2)
        scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height * 2)
    }

self.view.frame.height * 2仅用于测试。可能有什么不对?

2 个答案:

答案 0 :(得分:0)

使用自动布局,您需要做的就是将滚动视图的引脚约束添加到超视图的每个角落。

Auto layout pins

将您的4个约束设置为0,您将全部设置。

答案 1 :(得分:0)

响应晚了,但是对于那些需要在滚动视图中停留在屏幕底部的按钮的用户,如果内容视图应该与屏幕高度相同,请尝试以下操作:

  1. 将ScrollView的上,左,右和下约束从父级设置为0
  2. 将ContentView设置为ScrollView的等宽和等高
  3. 将ScrollView的ContentView顶部,左侧,右侧和底部约束设置为0
  4. 赋予滚动视图内的每个元素一些约束,将所有内容从上到下链接
  5. 在元素之间选择一个约束并将其删除,或将其设置为低优先级。我想将其设置为低优先级,因为如果必须删除“等高”,则布局不会中断。

enter image description here