【问题标题】:UIStackView can't show UIView when UIView added dynamically动态添加 UIView 时 UIStackView 无法显示 UIView
【发布时间】:2015-12-28 13:11:01
【问题描述】:
@IBAction func addNewImage(sender: UIButton) {
    let rect = CGRectMake(0, 0, 30, 30)
    let myView = UIView(frame: rect)
    myView.backgroundColor = UIColor.greenColor()
    myView.alpha = 1.0
    myStackView.addArrangedSubview(myView)
}

上面的这段代码只是一个按钮触发的动作。我要做的只是在UIStackView 中添加一个新的UIView,在这里命名为myStackView,最后我发现stackView 重新布局了所有arrangedViews,但新添加的视图不能被看见了,我不知道为什么。

感谢您在下面的精彩回答。

【问题讨论】:

    标签: ios swift uistackview


    【解决方案1】:

    试试这个,

    @IBAction func buttonPressed(sender: AnyObject) {
    
        let rect = CGRectMake(0, 0, 30, 30)
        let myView = UIView(frame: rect)
        myView.backgroundColor = UIColor.greenColor()
        myView.alpha = 1.0
        myView.heightAnchor.constraintEqualToConstant(20).active = true
        myView.widthAnchor.constraintEqualToConstant(20).active = true
        myStackView.addArrangedSubview(myView)
    
    }
    

    它应该可以工作。

    【讨论】:

    • 谢谢你的回答,它真的很好用,但我还是想知道为什么它可以用这个,我已经声明了“myView”的宽度和高度,但为什么我必须添加更多?
    • 您必须明确地为 UIStackView 的子视图提供约束,而将我们指定的框架放在一边。如果它帮助您解决问题,请接受答案。
    • 当他在CGRect中表达heightwidth30时,你为什么设置constraintEqualToConstant(20)?如果只有锚设置而不是矩形,它也会起作用吗?或者定位x,y也需要矩形? @satheeshwaran
    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 2019-01-26
    • 1970-01-01
    • 2015-06-14
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多