roc*_*101 23 uilabel iboutlet ios swift
我正在尝试学习Apple的Swift.我最近尝试构建一个GUI应用程序,但我有一个问题:
如何与应用的GUI元素进行交互?例如,我使用界面构建器来创建UILabel,然后通过按住Control键点击它将它连接到我的viewcontroller,这样我就得到了@IBOUTLET.现在,在我的视图控制器中,如何编辑此UILabel的文本?换句话说,我可以使用什么代码以编程方式控制故事板上某些内容的文本?我在网上找到的所有方法似乎只能使用代码生成的按钮,而不是故事板上生成的按钮.
我见过像这样的代码
self.simpleLabel.text = "message"
如果这是正确的,我如何将其与相关标签链接?换句话说,我如何调整此代码以与IBOutlet连接(如果这就是我的工作)
Ale*_*ski 28
如果您已成功将控件与类IBOutlet上的控件相关联UIViewController,则会将属性添加到该属性中,您只需将simpleLabel替换为您指定IBOutlet连接的任何内容即可:
class MyViewController: UIViewController {
    @IBOutlet weak var myLabel: UILabel!
    func someFunction() {
        self.myLabel.text = "text" 
    }
}
duc*_*i9y 23
您创建的插座必须由您命名.插座属于您的视图控制器.self.simpleLabel意思是"取的值我指定属性'simpleLabel’.
由于不同的插座具有不同的名称,因此self.simpleLabel在您的插座被命名为"simpleLabel"之前使用此处将无法使用.尝试使用您在创建插座时为插座指定的名称替换"simpleLabel".
现在正确的方法是:
self.yourLabelName.text = "message"
小智 6
如果您有这样的 IBOutlet:
@IBOutlet var someLabel: UILabel!
那么你可以像在你的例子中一样设置 text 属性:
someLabel.text = "Whatever text"
如果您对此有疑问,可能是您没有在正确的位置分配 text 属性。如果它位于未被调用的函数中,则该行不会执行,并且 text 属性不会更改。尝试覆盖 viewDidLoad 函数,并将该行放在那里,如下所示:
override func viewDidLoad() {
    super.viewDidLoad()
    someLabel.text = "Whatever text"
}
然后,一旦视图加载,您将设置 text 属性。如果您不确定某行代码是否正在执行,您总是可以在那里放置一个断点,或者添加一些输出。就像是
println("Checkpoint")
在您不确定的代码块中可以真正帮助您了解它何时以及是否运行。
希望这可以帮助。
您可能会尝试更改不在主线程中的 UI 组件,在这种情况下,请执行以下操作:
DispatchQueue.main.async {
        someLabel.text = "Whatever text"
}
| 归档时间: | 
 | 
| 查看次数: | 57961 次 | 
| 最近记录: |