我的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是给我带来问题的那个。
抱歉忘了添加当前屏幕的图像
答案 0 :(得分:0)
您是否尝试使用视图检查器进行调试?您的观点会怎样?视图层次结构的屏幕截图有很多帮助。
如果没有这个,我的预感是你没有使用足够的约束,因此你的布局是模棱两可的。不要忘记UIScrollView
需要 6个约束才能正确布局而不是4个。
编辑:如果要检查scrollView是否存在问题,请尝试在
中添加此代码scrollView.snp.makeConstraints { (make) in
make.edges.equalTo(view)
make.width.height.equalTo(view)
}