更改UIScrollView内容大小

时间:2016-05-09 10:56:12

标签: ios swift uiscrollview contentsize

我有ViewController和UIScrollView,一些UIImages和UIButtons。 在Storyboard中,我将UIScrollView的大小设置为:width:320,height:570

我想在加载ViewController时更改我的UIScrollView的内容。

我在viewDidLoad中添加了一边:

        scrlMain.contentSize = CGSize(width: 320,height: 790)

我还在viewDidLayoutSubviews中添加了代码:

        self.scrlMain.translatesAutoresizingMaskIntoConstraints = true

但是我的UIScrollView仍然是最后一个尺寸= 570。 我无法使用viewDidAppear,因为当我按下按钮时,需要它来改变颜色。当它改变了颜色时,我的UIScrollView就会向上移动。

我做错了什么?

所有代码:

    override func viewDidLoad() {
    super.viewDidLoad()
    scrlMain.delegate = self
    scrlMain.contentSize = CGSizeMake(320, 790)
    }
override func viewDidLayoutSubviews() {
    self.scrlMain.translatesAutoresizingMaskIntoConstraints = true
    self.scrlMain.contentSize = CGSize(width: self.scrlMain.frame.width, height: 60.0 + 5 * (self.scrlMain.frame.width / 16.0 * 5.0));
}

4 个答案:

答案 0 :(得分:5)

此功能出错:

override func viewDidLayoutSubviews() {
self.scrlMain.translatesAutoresizingMaskIntoConstraints = true
self.scrlMain.contentSize = CGSize(width: self.scrlMain.frame.width, height: 60.0 + 5 * (self.scrlMain.frame.width / 16.0 * 5.0));
}

我删除了这段代码:

self.scrlMain.contentSize = CGSize(width: self.scrlMain.frame.width, height: 60.0 + 5 * (self.scrlMain.frame.width / 16.0 * 5.0));

一切都是对的

答案 1 :(得分:1)

嘿@Dim你可以试试这个 -

yourScrollView.contentSize = CGSizeMake(320, 568)

您可以将尺寸568更改为您想要的任何颜色。

答案 2 :(得分:0)

试试这个:

yourScrollView.userInteractionEnabled = YES

请您保持屏幕尺寸与滚动视图内容大小之间的差异...以便正确显示

假设yourScrollViewSize greatertThan yourScreenSize

答案 3 :(得分:0)

override func viewDidLayoutSubviews() {

    DispatchQueue.main.async {
    self.scrollview.translatesAutoresizingMaskIntoConstraints = true
    self.scrollview.contentSize = CGSize(width:0, height:self.scrollview.frame.height*2) // whatever hight you want
    }
}