如何从变量中定义UILabel中的文本? - 斯威夫特

时间:2016-06-15 02:58:48

标签: ios swift

我是一般的编程新手,想知道如何做到这一点。我正在创建一个简单的应用程序,我需要跟踪分数并相应地更新UILabel。标签名为'得分' 。当用户按下UIButton时,我需要它增加1。这是否涉及制作新的.swift文件?请记住,我是一个完整的新手。

4 个答案:

答案 0 :(得分:2)

不需要新的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"

答案 1 :(得分:2)

没有。您不必创建任何新的.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.
    }

答案 2 :(得分:2)

首先在标签上添加IBOutlet,在按钮上添加IBAction。

Add an IBAction

您可以在下拉菜单中选择它是Outlet还是操作。接下来,在IBAction函数中更新您的标签!

Update Label

我希望这有助于您入门!

哦,欢迎编程! :)

答案 3 :(得分:1)

因此,此处的目标是使用增加标签上显示的值的事件来响应“操作”。因此,我们需要将其分解为几个不同的部分。

  1. 我们需要举办活动/行动
  2. 我们需要增加某种计数器
  3. 我们需要使用计数器的值更新标签值。
  4. 对于数字1,您需要在Xcode的“Interface Builder”中查看创建“action”。您还需要使用类似的方法将标签设置为“outlet”。我们将标签称为“lblScore”

    对于第二个,您需要声明一个variable来保持计数器。让我们将这个变量称为“count”,所以:

    var count = 0
    

    现在,您需要在您在数字1中设置的操作中添加计数器递增。您可以在Swift中通过以下方式执行此操作:

    count += 1
    

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

    但等等,“count”的值是“int”,UILabel的“text”属性是“字符串”!这意味着您需要将“cast”值设置为字符串。同样,你会这样做:

    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.
    }
    
    
    }
    

    我希望这有帮助!