前提・実現したいこと
初学者です。スーパービュー上に表示したイメージビューmyCarを、設置した右へボタンを押すたびにx軸方向へ10ポイントづつ動かしたいです。ソースコードはテキストに記載のものをそのまま転記しており、エラーは出ないのですがうまく動きません。
発生している問題・エラーメッセージ
ボタンを押すたびに10ピクセルつつ右に移動するはずなのですが、ボタンを1回押す時のみ10ポイント右に動くものの、2回目以降は動きません。エラーは出ていません。
エラーメッセージ
該当のソースコード
Swift5
1 2import UIKit 3 4class ViewController: UIViewController { 5 6 //myCarをOutlet接続 7 @IBOutlet weak var myCar: UIImageView! 8 //ホーム座標を決める 9 let homePoint = CGPoint(x: 100, y: 150) 10 11 //ホームに戻るボタン 12 @IBAction func goHome(_ sender: Any) { 13 myCar.center = homePoint 14 } 15 //右へ進むボタン 16 @IBAction func move(_ sender: Any) { 17 myCar.center.x += 10 18 } 19 20 //開始時にホームへ移動する 21 override func viewDidLayoutSubviews() { 22 myCar.center = homePoint 23 } 24 25 override func viewDidLoad() { 26 super.viewDidLoad() 27 // Do any additional setup after loading the view. 28 29 } 30}
試したこと
myCar.center.x += 10 の後にprintでプロパティを確認したところ、myCar.center.xの値が何回ボタンを押しても110になっているようです(本来は10づつ増えていかなければならない)。ですので代入演算子の"+="がうまく動作していないように思えるのですが、解決法が思い浮かびません。
初学者の上、初めての投稿で不足な点もあるかと思いますが、ご回答いただけると大変助かります。
補足情報(FW/ツールのバージョンなど)
xcode: ver.10.2
swift5.0
回答1件
あなたの回答
tips
プレビュー