2017-04-05 22 views
2

ボタンを押したときに表示されるラベルがあります。 60秒のような一定の時間が経過したら、ラベルが再び表示されます。私はviewDidAppearでそれを行うと仮定したいと思います。どうすればいいですか?Swift iOS-ラベルを非表示にして一定時間が経過した後に表示する方法

@IBOutlet weak var myLabel: UILabel! 

override func viewDidAppear(_ animated: Bool) { 
     super.viewDidAppear(animated) 
     //after 60 secs myLabel should reappear 
     //self.myLabel.isHidden = false 
    } 


@IBAction func buttonTapped(_ sender: UIButton){ 
     self.myLabel.isHidden = true 
} 
+0

あなたもそれをグーグルしてみたのですか? –

+2

質問をする前にGoogleに問い合わせてください:-) http://stackoverflow.com/questions/27990085/nstimer-how-to-delay-in-swift –

+0

@ Steffen Lund Andersenそれは私の心を横切っていませんでしたが、ちょうどそれをgoogledした。ありがとう、それは私が探していた答え:)ありがとう! –

答えて

7
@IBAction func buttonTapped(_ sender: UIButton){ 
    self.myLabel.isHidden = true 
    DispatchQueue.main.asyncAfter(deadline: .now() + 60) { 
     self.myLabel.isHidden = false 
    } 
} 
+0

ありがとう!私はそれを受け入れた後に受け入れられる答えとして受け入れるでしょう –

1

あなたはタイマーをスケジュールすることでこれを行うことができます。

class ViewController: UIViewController { 

    @IBOutlet weak var myLabel: UILabel! 

    @IBAction func buttonTapped(sender: UIButton) { 
     if !myLabel.isHidden { 
      myLabel.isHidden = true 
      Timer.scheduledTimer(timeInterval: 15.0, target: self, selector: #selector(showLabel), userInfo: nil, repeats: false) 
     } 
    } 

    func showLabel() { 
     myLabel.isHidden = false 
    } 
} 
+1

私はあなたの答えを投票しましたが、私はすでにマックスを受け入れました。ありがとう! :) –

+0

ボタンをタップするたびに、別のタイマースケジュールを追加することに注意してください。 –

+0

@AhmadFありがとう!私はcheking 'myLabel.isHidden'で答えを更新しました –

関連する問題