質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3235閲覧

ストップウォッチ

退会済みユーザー

退会済みユーザー

総合スコア0

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/02/16 09:15

ストップウォッチのアプリを作っていて、スタートボタンを押すと、タイムがスタートされ、ストップを押すとタイマーが停止し、リセットボタンを押すと、タイムの値が消える。までは実装できました。
次に、これにラップ機能を付け加えたいんですけど、どうすれば良いでしょうか。

swift

1import UIKit 2 3class ViewController: UIViewController { 4 5 @IBOutlet weak var timerLabel: UILabel! 6 @IBOutlet weak var startButton: UIButton! 7 @IBOutlet weak var stopButton: UIButton! 8 @IBOutlet weak var resetButton: UIButton! 9 10 var startTime: TimeInterval? = nil 11 var timer: Timer? 12 13 14 override func viewDidLoad() { 15 super.viewDidLoad() 16 setButtonEnabled(start: true, stop: false, reset: false) 17 // Do any additional setup after loading the view, typically from a nib. 18 } 19 20 override func didReceiveMemoryWarning() { 21 super.didReceiveMemoryWarning() 22 // Dispose of any resources that can be recreated. 23 } 24 25 func setButtonEnabled(start:Bool,stop:Bool,reset:Bool){ 26 self.startButton.isEnabled = start 27 self.stopButton.isEnabled = stop 28 self.resetButton.isEnabled = reset 29 } 30 31 func update(){ 32 if let t = self.startTime{ 33 let time:Double = NSDate.timeIntervalSinceReferenceDate - t 34 let sec: Int = Int(time) 35 let msec: Int = Int((time - Double(sec)) * 100.0) 36 self.timerLabel.text = NSString(format:"%2d:%2d:%2d",sec/60,sec%60,msec) as String 37 } 38 } 39 40 @IBAction func startTimer(sender: UIButton) { 41 setButtonEnabled(start: false, stop: true, reset: false) 42 self.startTime = NSDate.timeIntervalSinceReferenceDate 43 self.timer = Timer.scheduledTimer(timeInterval: 0.01,target:self,selector:#selector(ViewController.update),userInfo:nil,repeats: true) 44 45 } 46 @IBAction func stopButton(sender: UIButton) { 47 setButtonEnabled(start: false, stop: false, reset: true) 48 self.timer?.invalidate() 49 self.timer = nil 50 51 } 52 @IBAction func resetTimer(sender: UIButton) { 53 setButtonEnabled(start: true, stop: false, reset: false) 54 self.startTime = nil 55 self.timerLabel.text = "00:00:00" 56 } 57 58} 59 60 61

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

  1. まずはラップをいくつまで記憶できるかを決めその分の時間の記憶場所を作る
  2. ラップボタンを追加
  3. ラップを表示する部分を追加
  4. ランプボタンが押されたら、タイマーが起動中なのを確認して、起動していればその時の時刻を保存。

保存する番号はラップボタンを押す度に+1してずらしていけばいいと思います。

iPhone付属の時計にあるストップウォッチを参考にしてみてはどうでしょう。このストップウォッチは開始するとリセットボタンがラップボタンに変わるようになっているのと、ラップはかなりの数記憶できるようです。

投稿2017/02/16 09:29

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問