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

时间:2016-04-28 23:28:04

标签: iphone xcode swift uiscrollview scrollview

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

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

另一个重要的事情是我将View控制器模拟尺寸设置为自由形式,宽度为375,高度为1000.

我一直想弄清楚,我找不到我做错了什么。如果你知道这是什么原因,我会非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

迅速:

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
    }
}

目标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;
                       });
}