为什么我的 UIScrollView 的 contentSize 没有改变?

Why does the contentSize of my UIScrollView not change?

我正在尝试创建一个包含不同设置的 UIScrollView。虽然我将 UIScrollView 连接到我的 ViewController 并以编程方式更改了内容大小,但 UIScrollView 仅水平滚动,这不是它应该的方式(它应该仅垂直滚动)。这是我用来定义 UIScrollView 内容大小的内容:

self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 1400)

另一件重要的事情是,我将 View controller 模拟大小设置为自由形式,宽度为 375,高度为 1000。

我已经想了一段时间了,但我找不到我做错了什么。如果您知道这是什么原因,我将不胜感激。

提前致谢。

func viewDidLayoutSubviews() {
self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: 1400)
}

UIScrollview contentSize 动态调整(取决于子视图框架)

Swift:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    DispatchQueue.main.async {
        var contentRect = CGRect.zero

        for view in self.scrollView.subviews {
           contentRect = contentRect.union(view.frame)
        }

        self.scrollView.contentSize = contentRect.size
    }
}

Objective C:

 - (void)viewDidLayoutSubviews {
     [super viewDidLayoutSubviews];

     dispatch_async(dispatch_get_main_queue(), ^ {
                        CGRect contentRect = CGRectZero;

                        for(UIView *view in scrollView.subviews)
                           contentRect = CGRectUnion(contentRect,view.frame);

                           scrollView.contentSize = contentRect.size;
                       });
}