Ios 在ViewDidLoad()上获取图像?
按钮功能有效,如果分数超过5,则有效,如果我将变量分数设置为大于现有值的数字,则会保存该高分,如果按钮高于高分,我如何使其在单击按钮时递增并保存高分 如果我明确地将分数设置为100,然后将其重置为一个较低的数字,例如14,屏幕仍将显示100。我怎样才能使用按钮,这样我就不必使用变量来设置数字,比如说,如果用户点击按钮120次,屏幕文本将是120,而不是100 多谢各位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
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。