2017-10-08 11 views
0

私はボタンを押すとタイマーを使って常に振動するアプリを持っています。私は振動からそれを停止するために使用したい別のボタンがあります。スタートボタンで再度有効にすることもできます。私はこれをどのようにするべきですか?ここに私のコードは(ボタン2が停止ボタンです)(また、Xcodeのを使用してIM)である:Xcodeでリピータを停止するには?

@IBAction func button1(_ sender: UIButton) { 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) 
    _ = Timer.scheduledTimer(timeInterval: 0.0, target: self, 
     selector: Selector(("doaction")), userInfo: nil, repeats: true) 
} 

@IBAction func button2(_ sender: UIButton) { 
} 
+2

あなたはできません。あなたはそれを無効にすることができないように、あなたは(それを '_'に割り当てた)タイマーへの参照を保持しませんでした。それはかなりばかげたことでした。 – matt

答えて

0

は、あなたのクラスにタイマープロパティを追加します。

@IBAction func button1(_ sender: UIButton) { 
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) 
    timer?.invalidate() 
    timer = Timer.scheduledTimer(timeInterval: 0.0, target: self, 
     selector: Selector(("doaction")), userInfo: nil, repeats: true) 
} 

@IBAction func button2(_ sender: UIButton) { 
    timer?.invalidate() 
    timer = nil 
} 

var timer: Timer? 

を次に、あなたの二つの方法を更新

timerプロパティを使用すると、クラス内の任意のメソッドからタイマーにアクセスできます。

関連する問題