gpt4 book ai didi

swift - 动态添加 View 到 UIStackview

转载 作者:搜寻专家 更新时间:2023-11-01 06:27:55 24 4
gpt4 key购买 nike

我正在尝试向 UIStackView 动态添加 View (或按钮)。

起初,UIStackView 没有排列 View (垂直),并且从一些 http 响应中获取后,几个 View (按钮)被添加到 UIStackViewUIStackView 也是自动布局以容纳特定区域。我试图找到动态添加示例,但失败了。

任何人都可以向我展示动态添加 View 到 UIStackView 的示例吗?

最佳答案

也许对你有帮助。请遵循以下几点:

  • UIScrollView 添加到 Storyboard或 XIB 中的 UIViewController
  • 启动一个 NSMutableArray 并将其命名为 arrViews 获取服务器响应并在数组中添加 View 。
  • 初始化UIStackView在init方法中传递arrView数组。
  • 之后 UIStackView 将添加 UIScrollView 的 subview 。
  • 以编程方式向 UIStackView 添加约束。就是这样。

    if let response = self.serverResponse {
    if let body = response.responseBody {

    if let view = body.views {
    arrViews = createSubViews(view)
    }

    }
    }

    let stackView = UIStackView(arrangedSubviews: arrViews)
    stackView.translatesAutoresizingMaskIntoConstraints = false
    stackView.axis = .vertical
    stackView.spacing = 16
    stackView.distribution = .fill
    self.scrollView.addSubview(stackView)

    //constraints

    let leading = NSLayoutConstraint(item: stackView, attribute: .leading, relatedBy: .equal, toItem: self.scrollView, attribute: .leading, multiplier: 1.0, constant: 0)
    self.scrollView.addConstraint(leading)
    let trailing = NSLayoutConstraint(item: stackView, attribute: .trailing, relatedBy: .equal, toItem: self.scrollView, attribute: .trailing, multiplier: 1.0, constant: 0)
    self.scrollView.addConstraint(trailing)
    let top = NSLayoutConstraint(item: stackView, attribute: .top, relatedBy: .equal, toItem: self.scrollView, attribute: .top, multiplier: 1.0, constant: 0)
    self.scrollView.addConstraint(top)

    let bottom = NSLayoutConstraint(item: stackView, attribute: .bottom, relatedBy: .equal, toItem: self.scrollView, attribute: .bottom, multiplier: 1.0, constant: 0)
    self.scrollView.addConstraint(bottom)

    let equalWidth = NSLayoutConstraint(item: stackView, attribute: .width, relatedBy: .equal, toItem: self.scrollView, attribute: .width, multiplier: 1.0, constant: 0)

    self.scrollView.addConstraint(equalWidth)


    leading.isActive = true
    trailing.isActive = true
    top.isActive = true
    bottom.isActive = true
    equalWidth.isActive = true

希望对您有所帮助。快乐编码:)

关于swift - 动态添加 View 到 UIStackview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51490603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com