Swift 如何使按钮一次添加一个视图?

Swift 如何使按钮一次添加一个视图?,swift,view,uibutton,Swift,View,Uibutton,我正在练习创建一个有3个视图的应用程序。每个视图都有一个隐藏自身的按钮。现在,我在视图外添加了一个按钮,以便在隐藏视图后重新添加它们,但是,当我删除视图并按下按钮时,它会显示所有三个视图。我希望它一次添加一个视图(而不删除其他视图)。我能做什么? 这是我的代码,我甚至想添加多个添加按钮,但并不清楚 @IBAction func addViewButton(_ sender: Any) { view1.isHidden = false view2.isHidden =

我正在练习创建一个有3个视图的应用程序。每个视图都有一个隐藏自身的按钮。现在,我在视图外添加了一个按钮,以便在隐藏视图后重新添加它们,但是,当我删除视图并按下按钮时,它会显示所有三个视图。我希望它一次添加一个视图(而不删除其他视图)。我能做什么? 这是我的代码,我甚至想添加多个添加按钮,但并不清楚

      @IBAction func addViewButton(_ sender: Any) { 
    view1.isHidden = false
    view2.isHidden = false
    view3.isHidden = false
    }

在ViewController中声明一个类似currentVisibleViews的变量,并假设开始时只有第一个变量可见,因此我们将数字从1开始,并将视图添加到数组中以更容易地控制:

var currentVisibleViews = 1
var viewArray = [UIView]()
viewDidLoad
中,将视图添加到
viewArray

view1.isHidden = false
view2.isHidden = true
view3.isHidden = true

viewArray.append(view1)
viewArray.append(view2)
viewArray.append(view3)
然后在按钮中:

@IBAction func addViewButton(_ sender: Any) { 
    if currentVisibleViews > 2 {
        viewArray.forEach { (view) in
            view.isHidden = true
        }
        currentVisibleViews = 0
    } else {
        viewArray[currentVisibleViews].isHidden = false
        currentVisibleViews += 1
    }
}
上述代码的工作原理如下:

  • 首先,所有视图都可见
  • 第一次点击将隐藏所有视图
  • 然后,每次点击都会使视图可见
  • 转到步骤2(一旦所有视图都可见)

  • 通过这种方式,您只能使用一个函数来控制所有视图,它不必再是iAction,它可以只是ViewController的一种方法

    您还没有给出足够的细节-发布的答案可能就足够了。但是,如果要将视图“绑定”到特定按钮,请查看
    标记
    属性。这正是它的目的。。。给每个按钮一个特定的标签,在“公共”功能中检查它,然后从那里开始!你真正需要的。。你能附上任何截图吗?等等,我是一个初学者,我如何用UIView创建一个数组?就像我在回答中所做的那样,你有你的视图的输出,对吗?就在它们下面创建数组,如:
    让viewArray=[view1,view2,view3]
    当我尝试时,我得到一个swift编译器错误,它说:0:error:无法在属性初始值设定项中使用实例成员“view1”;属性初始值设定项在“self”可用之前运行。如果您需要创建空数组,然后在viewDidLoad中的数组中部署视图,请参阅我编辑的答案。ook完美,但是如果我不想第一次隐藏视图,而只想通过按钮添加视图,该怎么办?(应用程序以view1开始,其他两个最初是隐藏的)