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

Posted

技术标签:

【中文标题】如何让按钮一次添加一个视图?【英文标题】:How do I make a button add one view at a time? 【发布时间】:2019-01-15 23:56:57 【问题描述】:

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

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

【问题讨论】:

您没有真正提供足够的细节 - 发布的答案可能就足够了。但是,如果您想将视图“绑定”到特定按钮,请查看 tag 属性。这正是它的用途......给每个按钮一个特定的标签,在“通用”功能中检查它,然后从那里开始! 你真正需要的..你能附上任何截图 【参考方案1】:

在你的 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 步(一旦所有视图都可见)

通过这种方式,你可以只有一个函数来控制你所有的视图,它不再必须是 IBAction,它可以只是你的 ViewController 的一个方法

【讨论】:

等等,我是初学者,如何使用 UIViews 创建数组? 就像我在回答中所做的那样,您有自己的观点吗?在它们下面创建数组,如:let viewArray = [view1, view2, view3] 当我尝试时,我得到一个快速编译器错误,上面写着 :0: error: cannot use instance member 'view1' within property initializer;属性初始化程序在“self”可用之前运行 对不起,您需要创建空数组,然后在 viewDidLoad 中的数组内部署视图,请参阅我编辑的答案。 看起来很完美,但是如果我不想在第一次隐藏我的视图但我只想通过按钮添加它们怎么办? (应用以 view1 开头,其他两个最初是隐藏的)

以上是关于如何让按钮一次添加一个视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在UIPageViewController顶部添加按钮?

如何从同一方法外部将按钮添加到 UIScrollView 作为子视图?

如何让 UIButton 一次做两件事?

用iframe后 点后退按钮时总是在潜套框里后退,如何让整个父页面整体后退呢?

推送到另一个视图后,如何让这个 ios 按钮在提要视图中保持可见?

如何在 Xcode 中为我的表格视图添加上边距?