2016-09-15 22 views
0

i-mは初めてのアプリケーションでコードを作成して作業する方法を学びます。それはいくつかのジムアプリです。ボタンを押した後にタイマーとラベルを変更したいと思っています。 これは今までの私のコードですが、次のラベルを表示する方法と、ボタンを表示した後にカウントダウンする次のタイマーを理解できません。あなたのfunc nextButtonTapped()方法でクリックしたときにラベルを変更するボタンが必要

class _daysday1ViewController: UIViewController { 

@IBOutlet weak var exerciseNameLabel: UILabel! 
@IBOutlet weak var btnStart: UIButton! 

@IBOutlet weak var exercisePicture: UIImageView! 

@IBOutlet weak var exerciseDescriptionLabel: UILabel! 

@IBOutlet weak var timerLabel: UILabel! 

@IBAction func nextButtonTapped(sender: AnyObject) { 

    var timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("update"), userInfo: nil, repeats: true) 
    count = countList[0] 


} 

var exerciseIndex = 0 

var exerciseList = ["12 reps at 80% of capicity" , " 10 reps at 90%" , "7 to 10 reps at full capacity"] 

var countList = [4 , 6 ,8] 


var count = 1 

override func viewDidLoad() { 
    super.viewDidLoad() 


} 

func update() { 
    if(count >= 0) { 
     timerLabel.text = String(count--) 
     self.btnStart.enabled = false 

     return 
    } 
    btnStart.enabled = true 
    exerciseDescriptionLabel.text = exerciseList[0] 

    } 

`

答えて

1

あなたのタイマーは、ほぼ同時に、それが作成されますと消えます。その機能はすばやく終了し、終了するとタイマーは消えます。この問題を解決するには

、このように、クラスレベルで同じ場所をタイマーVARを宣言しますが、カウントVARを宣言した:(?)

var timer: NSTimer? 

は、オプションとして、それを宣言するが、それはまでnilにできます次のボタンがタップされます。これに代えて

self.timer = ... 

:単純にこれを開始するためにnextButtonTapped内のコードの行を変更し、それを作成するには

var timer = ... 
+0

sugestionのおかげで!私はコーディングに新しいi-m ... i-m noob :)) –

0

、あなたは、このためのコードを含めることができます。 @IBActionは、ボタンがタッチされるたびにこのメソッドを起動します。したがって、このアクションで変更する変数が必要な場合は、{}の間で変更したいものを簡単に示します。

例:あなたはnextButtonTapped関数内でタイマーVARを宣言しているため
var currentExercise = 0 @IBAction func nextButtonTapped() {
btnStart.textLabel.text = "New Text To Display" currentExercise += 1 exerciseDescriptionLabel.text = exerciseList[currentExercise] }

+0

それは私だけで変更する必要がexerciseDescriptionLabelの罰金のために働いていましたvar current Exercise = -1を指定すると、exerciseListの最初の項目から開始します。ありがとうございました !あなたは私のtimerLabelでどうやってどうやって理想を持っていますか?私は同じメソッドを試してみると、私は文字列にint値を設定するか、そのようなsomethng私はcand ...助けをありがとうと言ってエラーをghet!それを謝る! –

+0

文字列とintは異なるデータ型です。String()または文字列補間を使用して数値を文字列に変更する必要があります。私は非常にあなたがdeveloper.apple.comで速やかにドキュメントを読むことをお勧めします –

関連する問題