ios - 在 swift 4 IOS 应用程序中手动添加和引用控件

标签 ios swift xcode

<分区>

关于 swift 4 和构建 iOS 应用程序的 NOOB 问题

我开始学习快速开发 iOS 应用程序 我来自 .net 和 C# 世界,所以我承认我更习惯于不同的开发方式

我还没有学会所有正确的术语,所以请耐心等待。

我正在关注这个 https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ConnectTheUIToCode.html#//apple_ref/doc/uid/TP40015214-CH22-SW1

现在我已经按照代码将按钮和标签放到 Storyboard上

在指南中,它讨论了使用 Ctrl + 拖动来创建对 .swift 文件中对象的引用

按 ctrl + Drop 似乎很痛苦,所以我想做的是手动在 swift 文件中创建引用

所以我在 Storyboard上放置了一个新的 UILabel 和 UIButton 控件,设置了标识值

然后在 swift 文件中我尝试添加控件和触摸事件

@IBOutlet weak var labelOne: UILabel!
@IBOutlet weak var buttonOne: UIButton!

@IBAction func setLabelOneText(_ sender: Any) {
    labelOne.text = "Default Text";
}

即我基于 Ctrl + Drop 代码放置在 swift 文件中的内容

但是没有任何效果。

回到示例代码,然后我更新了工作按钮点击事件以也更新手动添加的标签的文本,但它抛出错误。

是将 swift 文件中的对象引用到 Ctrl + Drop 到 swift 文件中的唯一方法吗?来自 C# 世界,如果我将控件放到 WPF 应用程序上,我将能够在代码隐藏文件中自动引用它,而不必担心访问控件的额外步骤。

我正在使用最新版本的 xcode 和 swift 4。

最佳答案

你想这样做吗?

@IBOutlet weak var labelOne: UILabel!
     override func viewDidLoad() {
        super.viewDidLoad()

        let tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.tapFunction))
        labelOne.isUserInteractionEnabled = true
        labelOne.addGestureRecognizer(tap)
    }

    @objc func tapFunction(sender:UITapGestureRecognizer) {

        print("tap working")
    }

关于ios - 在 swift 4 IOS 应用程序中手动添加和引用控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52020760/

相关文章:

ios - 如何使 UITextField 从两个类继承?

xcode - Playground 和 Project 之间的差异

swift - 如何修复 "objc[29072]: Class CLSUserDefaults is implemented in both"崩溃?

ios - 如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [ swift ]

objective-c - 使用数据加载自定义 ViewController

ios - 右栏按钮未出现在 iphone 6 和 6+ 中

ios - 在 Swift 中使用 Backendless 自定义模型类

ios - 在 wkwebview 中启用摄像头和麦克风访问

ios - 第二个 NSTimer 不工作?

ios - 推送下一个 View Controller 时 UISearchBar 被删除的延迟