UIScrollView不滚动-内容大小不明确

时间:2019-07-14 20:16:14

标签: ios swift uiscrollview autolayout uikit

  

我正在尝试创建滚动视图。视图本身是正确的   显示,但即​​使我向其中添加了视图,它也不会滚动   设置内容大小。

注意:我不是在使用情节提要,而只是在使用约束(自动版式)。

代码:

let scrollView: UIScrollView = {
        let sv = UIScrollView()
        sv.isScrollEnabled = true
        sv.backgroundColor = .brown
        return sv
    }()

    override func viewDidLoad() {
        super.viewDidLoad()

        setupViews()
    }

    func setupViews() {
        self.view.addSubview(scrollView)
        scrollView.anchor(top: self.view.topAnchor, left: self.view.leftAnchor, bottom: self.view.bottomAnchor, right: self.view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
        scrollView.contentSize = CGSize(width: self.view.frame.width, height: 2000)

        print(scrollView.contentSize)

        let view = UIView()
        view.backgroundColor = .blue


        scrollView.addSubview(view)

        view.anchor(top: scrollView.topAnchor, left: scrollView.leftAnchor, bottom: scrollView.bottomAnchor, right: scrollView.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
    }

.anchor()是我所做的自定义扩展,目的是使约束视图更容易。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

最好不要将自动布局与框架布局混合在一起

1-评论

scrollView.contentSize = CGSize(width: self.view.frame.width, height: 2000)

2-在scrollview内的视图到vc的视图和高度限制为2000之间设置相等的宽度约束

不与vc的视图更改混淆

let view = UIView()

let contentView = UIView()

然后添加这两个约束

contentView.widthAnchor.constraint(equalTo:self.view.widthAnchor).isActive = true
contentView.heightAnchor.constraint(equalToConstant:2000).isActive = true