代码之家  ›  专栏  ›  技术社区  ›  Stéphane de Luca

用非滚动的UIStackView填充UIStackView

  •  0
  • Stéphane de Luca  · 技术社区  · 8 年前

    我的VC是一个由两部分组成的垂直视图控制器,底部是一个uiscrollview,我在其中添加了一个垂直uistackview,因为它应该垂直滚动。

    所有施工步骤按以下程序进行:

        // Add upper part
        view.addSubview(upperView)
        upperView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            upperView.topAnchor     .constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
            upperView.leadingAnchor .constraint(equalTo: view.leadingAnchor),
            upperView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
            upperView.heightAnchor  .constraint(equalTo: view.heightAnchor, multiplier: 0.3)
        ])
    
    
        // Add down part
    
        view.addSubview(scrollView)
        scrollView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            scrollView.topAnchor     .constraint(equalTo: upperView.bottomAnchor,  constant:  40),
            scrollView.leadingAnchor .constraint(equalTo: view.leadingAnchor,      constant:  20),
            scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor,     constant: -20),
            scrollView.bottomAnchor  .constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
        ])
    
        // Vertical stackview: basically a vertical collection of strips
        scrollView.addSubview(stackView)
                stackView.spacing = 5
                stackView.distribution = .fill
                stackView.alignment = .leading
                stackView.axis = .vertical
    
                stackView.translatesAutoresizingMaskIntoConstraints = false
                NSLayoutConstraint.activate([
                    stackView.topAnchor   .constraint(equalTo: scrollView.topAnchor),
                    stackView.leftAnchor  .constraint(equalTo: scrollView.leftAnchor),
                    stackView.widthAnchor .constraint(equalTo: scrollView.widthAnchor),
                    stackView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor)
                ])
    

    如果我中断xcode并打开视图层次结构调试器,我会看到它抱怨内容大小:uiscrollview的可滚动内容大小不明确。

    当我将顶部和底部堆栈视图限制为粘贴到滚动视图时,它是如何出现的?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Shehata Gamal    8 年前

    你可能需要改变这个

    stackView.bottomAnchor.constraint(equalTo: stackView.bottomAnchor)
    

    stackView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor)