UIView不会出现

时间:2018-03-28 22:57:07

标签: ios swift snapkit

我的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是给我带来问题的那个。

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

enter image description here

1 个答案:

答案 0 :(得分:0)

您是否尝试使用视图检查器进行调试?您的观点会怎样?视图层次结构的屏幕截图有很多帮助。

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

编辑:如果要检查scrollView是否存在问题,请尝试在

中添加此代码
scrollView.snp.makeConstraints { (make) in
    make.edges.equalTo(view)
    make.width.height.equalTo(view)   
}