私は、スコアを表示するはずのラベルと、それが押されるたびにそのスコアを増やすはずのボタンを持っています。私の問題は、どこに機能を置いてもエラーが出るということです。Swift 3:UILabelとして表示される変数を増やして、UILabelをプログラムで更新するにはどうすればよいですか?
私はviewDidLoadクラスの上に関数があると、それは私のラベルの前に来るのでエラーが発生しますが、viewDidLoadのどこにでも置くと、ローカル関数を呼び出せないのでエラーが出ます。その後どこにでも置くと、関数を呼び出すボタンが関数の前に来る。
私はこれらのことをどこに置くのですか?これをすべて一緒にするより良い方法はありますか?これは、あなたがviewDidLoad
(のようなincreasingNum
)の外にあなたのラベルを定義する必要があります...そう簡単なこと
import UIKit
class ViewController: UIViewController {
let phrase = "Your score: "
var increasingNum = 0
func scoreGoUp (sender: UIButton){
increasingNum += 1
label.text = "\(phrase) \(increasingNum)"
}
override func viewDidLoad() {
super.viewDidLoad()
let label = UILabel(frame: CGRect(x: self.view.frame.size.width/2 - 100, y: self.view.frame.size.height/2 - 10, width: 200, height: 20))
label.textAlignment = .center
label.text = "\(phrase) \(increasingNum)"
self.view.addSubview(label)
let button = UIButton(frame: CGRect(x: self.view.frame.size.width/2 - 150, y: 100, width: 300, height: 50))
button.backgroundColor = UIColor.cyan
button.addTarget(self, action: #selector(scoreGoUp), for: .touchUpInside)
self.view.addSubview(button)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}