前提・実現したいこと
scheduledTimerで1つのラベルのテキストを、一定時間で変えたい。
labelの文字を3秒後に「宜しく」に変更し、更に3秒後、「お願いします」にする機能を実装したいです。
発生している問題・エラーメッセージ
@IBAction func okButton(_ sender: Any) { Timer.scheduledTimer(withTimeInterval: 3, repeats: false) {_ in self.helloLabel.text = "宜しく" self.helloLabel.text = "お願いします" } }
の部分で実装してみたのですが、3秒後に「宜しく」と表示をして、更に3秒後に「お願いします」と変更するはずが、
いきなり3秒後に「お願いします」と表示され、「宜しく」が飛ばされてしまいます。
該当のソースコード
Swift4
1import UIKit 2 3class ViewController: UIViewController { 4 5 // ラベル 6 @IBOutlet var helloLabel: UILabel! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 // Do any additional setup after loading the view, typically from a nib. 11 } 12 13 // okButtonを押したらhelloLabelが3秒後に「宜しく」に変わる。 14 // さらに3秒後に「宜しく」から「お願いします」に変わる。 15 @IBAction func okButton(_ sender: Any) { 16 17 Timer.scheduledTimer(withTimeInterval: 3, repeats: false) {_ in 18 self.helloLabel.text = "宜しく" 19 self.helloLabel.text = "お願いします" 20 } 21 22 23 24 25 } 26 27}
試したこと
原因を調べているのですが、まだわかっていません。
ご教示頂けると幸いです。
補足情報(FW/ツールのバージョンなど)
Xcode10
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/16 12:02