Я новичок в разработке iOS и Swift, и мне нужна помощь с практическим приложением.
Это очень простая игра, в которой вы перемещаете ползунок, чтобы «угадать» цель / случайное число, и вы правы или неверны. Сама игра запускается и работает, но у меня возникли проблемы, когда я попытался добавить кнопку «Играть снова» для сброса пользовательского интерфейса для новой игры.
Проблема, которую я вижу, - это когда я нажимаю кнопку "Играть снова?" кнопка, пользовательский интерфейс не обновляется. Я пытаюсь скрыть ярлыки и изменить сообщения, но пользовательский интерфейс не меняется, как при воспроизведении игры.
Кто-нибудь знает, какую ошибку я делаю, в результате чего пользовательский интерфейс не обновляется, когда я нажмите "Играть снова?" (связано с функцией reset ()). Для справки, я использую Xcode 10.0 и Swift 4.2.
Спасибо!
Картинки скучной игры
введите описание изображения здесь
ViewController
import UIKit
class ViewController: UIViewController {
var targetNumber = 0
@IBOutlet weak var message: UILabel!
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var resultLabel: UILabel!
@IBOutlet weak var playAgainBtn: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
playAgainBtn.isHidden = true
targetNumber = Int(arc4random_uniform(101))
message.text = "Move slider to: \(targetNumber)"
}
func correct() {
resultLabel.text = "Bullseye!"
resultLabel.backgroundColor = UIColor.green
}
func wrong() {
resultLabel.text = "Whoops! Not very good at this, are you?"
resultLabel.backgroundColor = UIColor.red
}
func scoreInRange() -> Bool {
let allowed_error = 3
return Int(slider.value) >= Int(targetNumber) - allowed_error && Int(slider.value) <= Int(targetNumber) + allowed_error
}
@IBAction func reset(_ sender: Any) {
slider.setValue(50.0, animated: false)
targetNumber = Int(arc4random_uniform(101))
message.text = "Move slider to: \(targetNumber)"
resultLabel.isHidden = true
playAgainBtn.isHidden = true
}
@IBAction func score(_ sender: Any) {
if scoreInRange() {
correct()
} else {
wrong()
}
playAgainBtn.isHidden = false
}
}