Ios 更改Swift UILabel的文本
我正在尝试学习苹果的Swift。我最近尝试构建一个GUI应用程序,但我有一个问题: 如何与应用程序的GUI元素交互?例如,我使用interface builder制作了一个UILabel,并通过单击控件将其连接到我的viewcontroller,这样我就得到了@IBOUTLET。现在,在视图控制器中,如何编辑此UILabel的文本?换一种说法,我可以使用什么代码以编程方式控制故事板上某些内容的文本?我在网上找到的所有方法似乎都只使用代码中生成的按钮,而不是脚本上生成的按钮 我见过这样的代码Ios 更改Swift UILabel的文本,ios,swift,uilabel,iboutlet,Ios,Swift,Uilabel,Iboutlet,我正在尝试学习苹果的Swift。我最近尝试构建一个GUI应用程序,但我有一个问题: 如何与应用程序的GUI元素交互?例如,我使用interface builder制作了一个UILabel,并通过单击控件将其连接到我的viewcontroller,这样我就得到了@IBOUTLET。现在,在视图控制器中,如何编辑此UILabel的文本?换一种说法,我可以使用什么代码以编程方式控制故事板上某些内容的文本?我在网上找到的所有方法似乎都只使用代码中生成的按钮,而不是脚本上生成的按钮 我见过这样的代码 se
self.simpleLabel.text = "message"
如果这是正确的,我如何将其与相关标签链接?换句话说,我如何调整此代码以与IBOutlet连接(如果我是这样做的)您创建的outlet必须由您命名。插座属于视图控制器
self.simpleLabel
表示“获取名为“simpleLabel”的属性的值”
由于不同的插座具有不同的名称,因此在您的插座命名为“simpleLabel”之前,在此处使用self.simpleLabel
将不起作用。尝试将“simpleLabel”替换为创建插座时为其指定的名称
现在正确的方法是:
self.yourLabelName.text = "message"
如果您已成功地将控件与
UIViewController
类上的IBOutlet
链接,则该属性将添加到控件中,您只需将simpleLabel替换为您命名的IBOutlet
连接即可:
class MyViewController: UIViewController {
@IBOutlet weak var myLabel: UILabel!
func someFunction() {
self.myLabel.text = "text"
}
}
如果IBOutlet有类似的功能:
@IBOutlet var someLabel: UILabel!
然后,您可以像示例中那样设置text属性:
someLabel.text = "Whatever text"
如果您对此有问题,可能您没有在正确的位置指定text属性。如果它位于未被调用的函数中,则该行将不会执行,文本属性也不会更改。尝试重写viewDidLoad函数,并将行放在其中,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
someLabel.text = "Whatever text"
}
然后,在加载视图后,您将设置text属性。如果您不确定是否有一行代码正在执行,您可以始终在那里放置一个断点,或者添加一些输出。差不多
println("Checkpoint")
在您不确定的代码块中,可以真正帮助您了解它何时以及是否运行
希望这能有所帮助。您可以尝试更改不在主线程中的UI组件,在这种情况下,请执行以下操作:
DispatchQueue.main.async {
someLabel.text = "Whatever text"
}
谢谢!既然你似乎知道自己在做什么,我希望你不介意再问一个问题:你会推荐一些快速教程吗?苹果似乎没有任何介绍GUI编程的文献(他们假设你知道自己在做什么)。如果没有,就不用担心。@rocket101查看Swift上的。有一大堆。或者在iBooks商店里查看免费的“Swift编程语言”书籍。正如@Rob所说,Swift编程语言书籍语言指南非常有用:讨论被感动了。这是一个答案,因此不需要主持人采取行动。使用相应的投票。这是最新的答案,应该被接受。