如何在Xcode Swift中对UI标签使用if语句

问题描述

我的代码:

    import UIKit

class ViewController: UIViewController {
    

    var score = 0
    
        
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    
    @IBAction func textfield(_ sender: Any) {
         
        
    }
    @IBAction func Button(_ sender: Any) {


    
  let imageName = "FB copy-3.png"
        let image = UIImage(named: imageName)
        let imageView = UIImageView(image: image!)
        imageView.frame = CGRect(x: 64.5,y: 413.5,width: 100,height: 100); view.addSubview(imageView)

        Counterlabel.text = String(score)
        
        if score >= 500 && score <= 998 {
            
            score += 2
            imageView.image = UIImage(named:"500button")
        }
        else if score >= 998 && score <= 1995 {
            
            score += 5
        }
        else if score >= 1995 && score <= 4000 {
            
            score += 10
            imageView.image = UIImage(named:"2000button")
           
        }
        else if score >= 4000 && score <= 10000 {
            
            score += 20
            
        }
        else if score >= 10000 && score <= 25000 {
            score += 50
        }
        else if score >= 25000 && score <= 75000 {
            
            score += 100
            
        }
        else if score >= 75000{
            
            score += 250
            
        }
        else {
            
            score += 1
            
        }
    }
    
    @IBAction func buttonimage(_ sender: Any) {
        
    }
    
    
    
    @IBOutlet weak var Counterlabel: UILabel!
}

所以我最近开始编码,对我想创建一个小型游戏并不太了解,这是我的问题:

我首先想在我的游戏中添加一个作弊代码,所以我有一个文本标签,并且想要它,如果我的文本标签文本为1811(或其他任何可行的方法),则得分+ = 50000

那是我一直面临的问题

还有一个更重要的事情(如果可能的话),我真的很想知道如何保存gtame数据,因此,如果再次播放,则可以保存进度。 我要保存的唯一进度是数字。

排行榜也很好

以上任何一项都将对我非常感激。

这是我的故事板的外观:

main.storyboard

解决方法

您可以使用UserDefaults保存分数:

let defaults = UserDefaults.standard

defaults.set(25,forKey: "score")

defaults.set("ESRAA",forKey: "Name")

检查此链接以获取更多详细信息:https://www.hackingwithswift.com/example-code/system/how-to-save-user-settings-using-userdefaults

,
As per my understanding,
  1. 有毒的您可以添加UITextField并将其设置为委托,

    textField:shouldChangeCharactersInRange:replacementString:TextField_Delegates_Detail

    您可以在其中设置支票的地方,

    如果textfield.text ==“ 1811” { 得分+ = 50000 }

  2. 要保存和存储游戏数据,可以使用IOS支持的UserDefaults,CoreData和SQLite数据库。 Some_Basic_Detail

,

您可以使用类似的方法来检查textField值

if textField.text == "11811" { socre += 5000 }
,

要考虑文本字段值,请将文本字段的delegate连接到控制器并实施

@objc func textFieldDidEndEditing(textField : UITextField) {
    if textField.text! != "1811" { return }
    score += 50000
    UserDefaults.standard.set(score,forKey: "score")
}

这样做的好处是,按下某个键时不会永久执行检查。该值将保存到UserDefaults。删除IBAction

viewDidLoad中加载值形式UserDefaults

override func viewDidLoad() {
    super.viewDidLoad()
    score = UserDefaults.standard.integer(forKey: "score")
}

可以更有效地编写范围检查

@IBAction func Button(_ sender: Any) {
    let imageName = "FB copy-3.png"
    let image = UIImage(named: imageName)
    let imageView = UIImageView(image: image!)
    imageView.frame = CGRect(x: 64.5,y: 413.5,width: 100,height: 100)
    view.addSubview(imageView)
    
    Counterlabel.text = String(score)
    switch score {
        case 500..<998:
            score += 2
            imageView.image = UIImage(named:"500button")
        case 998..<1995:
            score += 5
        case 1995..<4000:
            score += 10
            imageView.image = UIImage(named:"2000button")
        case 4000..<10000:
            score += 20
        case 10000...25000:
            score += 100
        case 75000...:
            score += 250
        default:
            score += 1
    }
    UserDefaults.standard.set(score,forKey: "score")
}

我怀疑每当按下按钮时是否打算添加(其他)图像视图


并且请命名变量ButtonCounterlabel lowerCamelCased buttoncounterLabel

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...