Ios 在ViewDidLoad()上获取图像?

Ios 在ViewDidLoad()上获取图像?,ios,iphone,swift,ios8,Ios,Iphone,Swift,Ios8,按钮功能有效,如果分数超过5,则有效,如果我将变量分数设置为大于现有值的数字,则会保存该高分,如果按钮高于高分,我如何使其在单击按钮时递增并保存高分 如果我明确地将分数设置为100,然后将其重置为一个较低的数字,例如14,屏幕仍将显示100。我怎样才能使用按钮,这样我就不必使用变量来设置数字,比如说,如果用户点击按钮120次,屏幕文本将是120,而不是100 多谢各位 var score = 0 class ViewController: UIViewController { //0...n

按钮功能有效,如果分数超过5,则有效,如果我将变量分数设置为大于现有值的数字,则会保存该高分,如果按钮高于高分,我如何使其在单击按钮时递增并保存高分

如果我明确地将分数设置为100,然后将其重置为一个较低的数字,例如14,屏幕仍将显示100。我怎样才能使用按钮,这样我就不必使用变量来设置数字,比如说,如果用户点击按钮120次,屏幕文本将是120,而不是100

多谢各位

var score = 0

class ViewController: UIViewController {

//0...n
@IBOutlet weak var textLabel: UILabel!
//image
@IBOutlet weak var image: UIImageView!
//adds 1
@IBAction func addButton(sender: AnyObject) {
    ++score
    textLabel.text = String(score)

    if textLabel.text >= "5" {
        image.image = UIImage(named: "win")
    }
}

func newScore() -> Int {
    var highScore = NSUserDefaults.standardUserDefaults().integerForKey("highscore")

    if score > highScore {
        NSUserDefaults.standardUserDefaults().setInteger(score, forKey: "highscore")
        NSUserDefaults.standardUserDefaults().synchronize()
        highScore = score
    }
    return highScore
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    textLabel.text = String(newScore())

    if textLabel.text >= "5" {
        image.image = UIImage(named: "win")
    }

    textLabel.text = String(newScore())
}

跟踪另一个变量(如buttonClicks)中的按钮单击次数,并在用户每次单击按钮时递增。然后在addButton下执行


textLabel.text=StringbuttonClicks

您可以向score属性添加观察者,以便在设置该属性时可以检查分数并相应地更新UI

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var scoreLabel: UILabel!


var score: Int = NSUserDefaults.standardUserDefaults().integerForKey("highscore") {
    didSet  {
        updateScore()
    }
}

func updateScore() {
    if score > 5 {
        println("win")
    }

    scoreLabel.text = "\(score)"

    checkHighScore()
}

func checkHighScore() {

    let defaults = NSUserDefaults.standardUserDefaults()
    if score > defaults.integerForKey("highscore") {
        defaults.setInteger(score, forKey: "highscore")
        defaults.synchronize()
    }

}


override func viewDidLoad() {
    super.viewDidLoad()

    updateScore()
}

@IBAction func buttonPressed(sender: UIButton) {
    score++
}

为什么要使用textLabel.text检测您的分数以确定用户是否获胜?您已经有了一个属性:score,因为它是UI上显示的内容@Bluehound@JustinRose我相信他是这样说的:如果text label.text>=5应该是这样的:如果分数>=5除此之外,我真的不理解你的问题…我如何让分数在它所在的数字处而不是0处离开?假设新的高分是15分,我如何让它在15分结束,而不是0分@Lyndseyscotth我该怎么把高分从高分数字中去掉,而不是分数数字?因此,如果高分是15,它不会从0开始,但从15开始,您希望文本标签从高分开始?是的,没错。如果高分是15分,那么当应用程序启动时,它将从16分开始计数……n@bluehound检查更新的答案。最初只需将您的分数设置为等于NSUserdefault IntegerWorkey。如果存在highscore,它将等于highscore。如果未设置highscore,则它将等于0。