【问题标题】:UIView wont appearUIView 不会出现
【发布时间】:2018-03-28 22:57:07
【问题描述】:

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

抱歉忘记添加当前画面的图片

【问题讨论】:

    标签: ios swift snapkit


    【解决方案1】:

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

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


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

    scrollView.snp.makeConstraints { (make) in
        make.edges.equalTo(view)
        make.width.height.equalTo(view)   
    }
    

    【讨论】:

    • 滚动视图是绿色视图
    • eventInfoVIew 似乎根本不存在
    • 是的,scrollView 可能有正确的frame,但它的contentView 可能没有正确的大小。为此,您需要两个额外的约束。
    • 我检查了视图层次结构
    • eventInfoView 至少在scrollView 内吗?在树上
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多