ios - 以编程方式编辑 UIStackView

标签 ios swift xcode uiviewcontroller uistackview

我目前正在尝试制作一个简单的应用程序,该应用程序将根据用户输入显示少量内容。目前,我的屏幕上有一个堆栈 View ,里面有一个 UIView。我试图做到这一点,一旦按下一个按钮,UIView 就会消失,然后当另一个按钮被按下时,就会出现一个新的。该按钮可以一直被按下,更多的 View 将被放入堆栈 View 。
这是我目前拥有的,它不起作用,我不知道在搜索了一段时间后如何让它工作:

import UIKit

class ViewController: UIViewController {
    
    @IBAction func deleteButtonPressed(_ button: PushButton) {
        
        @IBOutlet weak var containerStackView: UIStackView!
        containerStackView = UIStackView(arrangedSubviews: [removeIcons()])
    }

    func removeIcons() -> UIView {
        let newView = UIView(frame: CGRect(x: 0, y:0, width: 100, height: 100))
        return newView
    }
}
有没有办法引用堆栈 View 然后更改它?
- - 编辑
我现在有这个代码:
class ViewController: UIViewController {
    @IBOutlet var containerStackView: UIStackView!

    @IBAction func deleteButtonPressed(_ sender: Any) {
        let newView = UIView(frame: CGRect(x: 0, y:0, width: 100, height: 100))
        newView.backgroundColor = UIColor.black
    
        containerStackView = UIStackView(arrangedSubviews: [newView])
    }
}
这似乎完美地代表了堆栈 View ,但是,当我按下按钮时,堆栈 View 似乎没有发生任何事情。理论上,当前存在的 UIView 应该被一个创建为“newView”的黑色小方 block 替换。虽然这似乎没有发生 - 我有什么明显的遗漏吗?
为这些问题道歉,我是 swift 和 xcode 的新手。

最佳答案

试试这个:

class ViewController: UIViewController {
    //...
    @IBOutlet weak var containerStackView: UIStackView!
    //...
    @IBAction func deleteButtonPressed(_ button: PushButton) {
        let newView = UIView(frame: CGRect(x: 0, y:0, width: 100, height: 100))
        containerStackView.addArrangedSubview(newView)
    }
}

关于ios - 以编程方式编辑 UIStackView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62580736/

相关文章:

Swift 中的泛型数组

swift - 我无法弄清楚这个 switch 语句是如何工作的?

objective-c - XCode 4 iOS - 调试器显示字节码而不是告诉我应用程序崩溃的那一行

ios - SDWebImage NSURLRequests 间歇性失败

ios - UIView不可见时截图

ios - 容器 View Controller 中 childViewController 的大小和位置

ios - 由于插入 UITableViewAutomaticDimension 返回的单元格很小

ios - 如何在 TestFlight 中通知测试人员新构建?

ios - iPhone - 我们能否判断通知样式是否设置为 'Banner' 还是 'Alerts'

ios - 如何实现 [example.text intValue]?