【问题标题】:Stackview doesn't append second viewStackview 不附加第二个视图
【发布时间】:2017-05-22 06:19:57
【问题描述】:

我以编程方式创建了一个堆栈视图,并添加了一个我以编程方式创建的视图。但是当我尝试添加第二个视图时它不起作用。 这是我的代码:

@IBOutlet weak var codingScrollView: UIView!
let codeStackView = UIStackView()
var codeViews = [CodeView]()
let codeView1 = CodeView(name: "Lennart", date: "13/05/2002", code: "Just some code")
let codeView2 = CodeView(name: "Nina", date: "01/07/1999", code: "Also some code")

codingScrollView 是我添加到 UIScrollView 的内容视图。 codeStackView 是我之前描述过的那个 codeViews 数组用于将视图添加到 stackview。

这里是 viewDidLoad 方法:

    codeViews.append(codeView1)
    codeViews.append(codeView2)

    codingScrollView.addSubview(codeStackView)
    codingScrollView.backgroundColor = UIColor(red: 226/255, green: 226/255, blue: 226/255, alpha: 1)

    codeStackView.centerXAnchor.constraint(equalTo: codingScrollView.centerXAnchor)
    codeStackView.centerYAnchor.constraint(equalTo: codingScrollView.centerYAnchor)

    codeStackView.translatesAutoresizingMaskIntoConstraints = false

    codeStackView.spacing = 10

    codeStackView.axis = .horizontal
    codeStackView.alignment = .center

    for i in 0...codeViews.count - 1 {
        codeStackView.addSubview(codeViews[i])
        codeStackView.addArrangedSubview(codeViews[i])
    }

但如果我运行该应用程序,它不会显示第二个视图,它只会显示其中一个。

非常感谢,我真的很感谢任何帮助

【问题讨论】:

    标签: ios view swift3 uiscrollview xcode8


    【解决方案1】:

    尝试先将 codeView{1,2} 添加到堆栈视图,然后将 codeStackView 添加到 codingScrollView

    另外,请务必在进行任何约束之前设置codeStackView.translatesAutoresizingMaskIntoConstraints = false

    codeViews.append(codeView1)
    codeViews.append(codeView2)
    
    for i in 0...codeViews.count - 1 {
        codeStackView.addSubview(codeViews[i])
        codeStackView.addArrangedSubview(codeViews[i])
    }
    
    codeStackView.translatesAutoresizingMaskIntoConstraints = false
    
    codeStackView.centerXAnchor.constraint(equalTo: codingScrollView.centerXAnchor)
    codeStackView.centerYAnchor.constraint(equalTo: codingScrollView.centerYAnchor)
    
    codeStackView.spacing = 10
    
    codeStackView.axis = .horizontal
    codeStackView.alignment = .center
    
    codingScrollView.addSubview(codeStackView)
    codingScrollView.backgroundColor = UIColor(red: 226/255, green: 226/255, blue: 226/255, alpha: 1)
    

    【讨论】:

    • 但奇怪的是堆栈视图根本没有居中
    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    相关资源
    最近更新 更多