iOS Swift:以编程方式安装和卸载视图

Posted

技术标签:

【中文标题】iOS Swift:以编程方式安装和卸载视图【英文标题】:iOS Swift: Install and Unistall views programmatically 【发布时间】:2016-10-25 12:59:11 【问题描述】:

如何以编程方式安装和卸载视图?

示例

我的应用程序有一个 StackView,其中包含三个不同的 Views:Character、Starship 和 Vehicle。

现在,我希望在特定条件下,只出现一个视图,而其他两个不会。

我不是说隐藏和显示,而是安装和卸载。为什么?因为如果我保持我的观点安装我的 Xcode 崩溃。

有什么建议吗?

【问题讨论】:

您的意思是添加和删除吗? 点击视图并点击删除按钮将其删除 加了一张图,你就明白我的意思了 【参考方案1】:

我相信您正在寻找的答案就在这里 - https://***.com/a/36712325/2463875

如果您从storyboard安装或卸载视图,相当于添加/删除视图。

【讨论】:

【参考方案2】:

我不确定我是否 100% 正确理解它。但如果您想以编程方式将视图添加到堆栈视图,您可以通过以下方式进行。您需要将 UIStackView 连接到您的 ViewController 才能访问它。在那里你可以根据条件添加你的 UIViews。

我创建了一个游乐场示例。所以你可以复制它并在操场上运行它,它也会以视觉方式向你展示。为了更容易,我使用了 UILabels。但是 UIViews 几乎是一样的。

import UIKit
import PlaygroundSupport

class TestViewController : UIViewController 
    override func viewDidLoad() 
        super.viewDidLoad()

        title = "Test"

        self.view.frame = CGRect(x: 0, y: 0, width: 320, height: 480)
        self.view.backgroundColor = UIColor.brown

        let stackview = UIStackView(frame: CGRect(x: 0, y: 0, width: 320, height: 480))
        stackview.axis = .vertical
        stackview.distribution = UIStackViewDistribution.fillEqually

        let text = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
        text.text = "Hello, i am a label"

        let condition = true

        if condition 
            let text2 = UILabel(frame: CGRect(x: 0, y: 0, width: 100, height: 20))
            text2.text = "Hello, i am another label"

            stackview.addArrangedSubview(text2)
        

        stackview.addArrangedSubview(text)

        self.view.addSubview(stackview)
    


let testController = TestViewController()
PlaygroundPage.current.liveView = testController.view
testController

【讨论】:

以上是关于iOS Swift:以编程方式安装和卸载视图的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 以编程方式卸载软件

如何以编程方式卸载 Windows 中的应用程序?

IOS Swift以编程方式打开视图控制器[重复]

iOS 钥匙串中的项目能否在应用程序卸载和重新安装后继续存在?

IOS swift scrollview以编程方式

是否可以以编程方式卸载 Android 中的软件包