0

我的 viewController 中有一个函数,它使用 SnapKit 布置我的视图。函数看起来像这样

 @objc func setupView(){
        //will add the scroll view to the subview

            view.addSubview(scrollView)
    scrollView.addSubview(imageContainer)
    scrollView.addSubview(eventInfoVIew)
   // scrollView.addSubview(currentEventImage)

    scrollView.contentInsetAdjustmentBehavior = .never
    scrollView.backgroundColor = .green
    eventInfoVIew.backgroundColor = .red
    imageContainer.backgroundColor = .blue

    scrollView.anchor(top: view.topAnchor, left: view.leftAnchor, bottom: view.bottomAnchor, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
    imageContainer.anchor(top: scrollView.topAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: view.frame.width, height: view.frame.height - 200)
    eventInfoVIew.anchor(top: imageContainer.bottomAnchor, left: view.leftAnchor, bottom: scrollView.bottomAnchor, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)


    }




override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()

        scrollView.scrollIndicatorInsets = view.safeAreaInsets
        scrollView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: view.safeAreaInsets.bottom, right: 0)
    }

但是,当我运行应用程序时,其中一个视图不存在,这没有任何意义,因为据我所知,我正确地布置了约束。eventInfoView 是给我带来问题的一个。

抱歉忘记添加当前屏幕的图像

在此处输入图像描述

4

1 回答 1

0

您是否尝试过使用视图检查器进行调试?你的观点会发生什么?视图层次结构的屏幕截图会有很大帮助。

没有这个,我的直觉是你没有使用足够的约束,因此你的布局是模棱两可的。不要忘记正确布局UIScrollView需要6 个约束而不是 4 个。


编辑:如果您想检查滚动视图是否是问题,请尝试在其中添加此代码

scrollView.snp.makeConstraints { (make) in
    make.edges.equalTo(view)
    make.width.height.equalTo(view)   
}
于 2018-03-28T23:06:54.363 回答