Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从变量定义UILabel中的文本敏捷的_Ios_Swift - Fatal编程技术网

Ios 如何从变量定义UILabel中的文本敏捷的

Ios 如何从变量定义UILabel中的文本敏捷的,ios,swift,Ios,Swift,我对编程基本上是新手,想知道如何做到这一点。我正在制作一个简单的应用程序,其中我需要跟踪分数并相应地更新UILabel。标签名为“分数”。当用户按下ui按钮时,我需要它增加1。这是否涉及创建新的.swift文件?记住,我是一个完全的新手 不需要新的swift文件,在具有UILabel的viewcontroller中,为分数定义一个变量 var scoreValue = 0 //define in the class, next to your score label probably 然后,当

我对编程基本上是新手,想知道如何做到这一点。我正在制作一个简单的应用程序,其中我需要跟踪分数并相应地更新
UILabel
。标签名为“分数”。当用户按下
ui按钮时,我需要它增加1。这是否涉及创建新的.swift文件?记住,我是一个完全的新手

不需要新的swift文件,在具有UILabel的viewcontroller中,为分数定义一个变量

var scoreValue = 0 //define in the class, next to your score label probably
然后,当您需要更新标签时,在按下按钮时调用的某个函数中,执行如下操作

scoreValue += 1 //increase scoreValue by 1
score.text = "Score: \(scoreValue)" //labels text will look like "score: 1"

不,您不必创建任何新的.swift文件。下面的代码将解释如何做,并尝试添加相关的代码

var score = 0 //declare in class level
//按钮点击动作

@IBAction func ButtonClick(sender: AnyObject) {

        score+= 1
        scoreLabel.text = "Score : \(score)" //this will display the score increased by 1.
    }

首先,在标签上添加一个IBOutlet,在按钮上添加一个iAction

您可以在下拉菜单中选择是出口还是动作。接下来,在iAction函数中更新标签

我希望这能帮助你开始


哦,欢迎来到编程!:)

所以这里的目标是用一个增加标签上显示值的事件来响应“动作”。所以我们需要把它分解成几个不同的部分

  • 我们需要有活动/行动
  • 我们需要增加某种计数器
  • 我们需要用计数器的值更新标签值
  • 对于第1个问题,您需要研究在Xcode中的“Interface Builder”中创建一个“”。您还需要使用类似的方法将标签设置为“”。我们将把标签称为“lblScore”

    对于第二个,您需要声明一个可容纳计数器的。我们将此变量称为“count”,以便:

    现在,您需要在第1项中设置的操作中添加递增计数器。您可以通过以下方式使用Swift完成此操作:

    count += 1
    
    这将在当前计数值上加1。现在,您需要做的就是更新标签的值,使其成为“count”的当前值

    但是等等,“count”的值是一个“int”,UILabel的“text”属性是一个“string”!这意味着您需要将值“”设置为字符串。在同样的情况下,您将执行以下操作:

    lblScore.text = String(count)
    
    综上所述,它看起来像:

    class ViewController: UIViewController {
    
    @IBOutlet weak var lblScore: UILabel!
    
    var count = 0;
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    @IBAction func addScore(sender: AnyObject) {
    
        count += 1
    
        lblScore.text = String(count)
    
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    }
    

    我希望这有帮助

    顺便说一句,您可以从Storyboard控件创建IBOutlet/iAction,并将其拖动到您的类中!如果按钮和标签位于不同的视图控制器(ViewControllerA和ViewControllerB)上,如何执行此操作?我是否需要在此处有多个.swift文件(ViewControllerA.swift和ViewControllerB.swift)?因为当标签不在同一视图控制器上时,它不允许我为标签创建出口。@AidanHouston是的,
    @IBOutlet
    只能连接到接口生成器中与
    UIViewController
    关联的类文件。可以使用序列图像板文件中的标识检查器更改视图控制器的类。
    class ViewController: UIViewController {
    
    @IBOutlet weak var lblScore: UILabel!
    
    var count = 0;
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }
    @IBAction func addScore(sender: AnyObject) {
    
        count += 1
    
        lblScore.text = String(count)
    
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    
    }