以下のマイコードはタイマーです。 2秒に達するとボタンが表示されます。今すぐボタンを押すと、永遠に消えます。 10秒後にボタンが再表示されます。 10秒が経過した後、2と9の範囲内でボタンを選択すると、ボタンを消す動作を無効にしたいと思います。だから誰かが2〜9秒の間にボタンを押すと。 10秒後に自動的にボタンが再表示されます。あなたはこの一度if elseステートメントを使用してボタンアクションをオーバーライドする方法。
Rest.isHidden = true
を隠し、再びそれを示さないため
import UIKit
class ViewController: UIViewController {
@IBOutlet var Rest: UIButton!
@IBOutlet var start: UIButton!
var timer = Timer()
var counter = 0.0
var isRunning = false
@IBOutlet var dx: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
dx.text = "\(counter)"
start.isEnabled = true
}
@IBAction func play(_ sender: Any) {
if !isRunning{
timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(ViewController.updateTimer), userInfo: nil, repeats: true)
start.isEnabled = false
isRunning = true
}}
@IBAction func disaper(_ sender: Any) {
Rest.isHidden = true
}
func updateTimer(){
counter += 0.1
dx.text = String(format: "%.1f", counter)
if counter > 2 && counter < 9
{
Rest.alpha = 1
Rest.isEnabled = true
} else if counter > 10 {
Rest.alpha = 1
Rest.isEnabled = true
}
else {
return
Rest.alpha = 0
Rest.isEnabled = false
}}}
あなたのコードとあなたの説明はどちらも文字化けしています。現在のコードは2-9秒と9-10秒の間に異なるロジックを持っていますが、2つのロジックブロックは同じことをします。現在のタイマーコードは、ボタンを0秒から2秒まで隠し、2〜9秒と9〜10秒の間に表示&有効にしてから、10秒後に非表示にします。タイマーはIBactionの 'play'で始めるだけですが、そのアクションがどのボタンに接続されているかはわかりません。 –
「休憩」と呼ばれるフィールドを隠す別のアクション「disaper」がありますが、タイマーでは何もしません。 2つの異なるボタン、開始ボタンと休止ボタンがありますか? 'Rest'ボタンは非表示にする必要がありますか? –
質問を再投稿しないでください。必要に応じて、前の質問を更新します。 – rmaddy