6

我有带有 UIScrollView、一些 UIImages 和 UIButtons 的 ViewController。在情节提要中,我将 UIScrollView 的大小设置为:宽度:320,高度:570

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

我在 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

4 回答 4

8

这个函数有一个错误:

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));

一切都很好

于 2016-05-10T11:44:09.057 回答
1

嘿@Dim你可以试试这个-

yourScrollView.contentSize = CGSizeMake(320, 568)

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

于 2016-05-09T11:47:53.113 回答
0

试试这个:

yourScrollView.userInteractionEnabled = YES

并且请保持屏幕尺寸和滚动视图内容尺寸之间的差异......以便它可以正确可见

假设你的ScrollViewSize 大于你的ScreenSize

于 2016-05-09T13:18:04.473 回答
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
    }
}
于 2017-08-10T10:37:42.560 回答