質問編集履歴

5

コード

2017/09/25 11:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,281 +1,3 @@
1
- ```swift
2
-
3
- import UIKit
4
-
5
- import AudioToolbox
6
-
7
-
8
-
9
- class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
10
-
11
-
12
-
13
- @IBOutlet weak var label: UILabel!
14
-
15
- @IBOutlet weak var pickerView: UIPickerView!
16
-
17
-
18
-
19
- //タイマー変数
20
-
21
- var timer = Timer()
22
-
23
-
24
-
25
- //カウント(経過時間)
26
-
27
- var time = 180
28
-
29
-
30
-
31
-
32
-
33
- // 選択肢
34
-
35
- var dataList = ["0","1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
36
-
37
- var dataList2 = ["00", "15", "30", "45"]
38
-
39
-
40
-
41
- override func viewDidLoad() {
42
-
43
- super.viewDidLoad()
44
-
45
-
46
-
47
- }
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
- func numberOfComponents(in pickerView: UIPickerView) -> Int {
56
-
57
- // 表示する列数
58
-
59
- return 2
60
-
61
- }
62
-
63
-
64
-
65
- func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
66
-
67
- // アイテム表示個数を返す
68
-
69
-
70
-
71
- if component == 0 {
72
-
73
- // 1個目のピッカーの設定
74
-
75
- return dataList.count
76
-
77
- }
78
-
79
-
80
-
81
- return dataList2.count
82
-
83
- }
84
-
85
-
86
-
87
-
88
-
89
- // UIPickerViewDelegate
90
-
91
-
92
-
93
- func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
94
-
95
- // 表示する文字列を返す
96
-
97
-
98
-
99
- if component == 0 {
100
-
101
- // 1個目のピッカーの設定
102
-
103
- return dataList[row]
104
-
105
- }
106
-
107
-
108
-
109
- return dataList2[row]
110
-
111
- }
112
-
113
-
114
-
115
- func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
116
-
117
- // 選択時の処理
118
-
119
-
120
-
121
- let minute = dataList[pickerView.selectedRow(inComponent: 0)]
122
-
123
- let second = dataList2[pickerView.selectedRow(inComponent: 1)]
124
-
125
-
126
-
127
- print("(minute):(second)")
128
-
129
-
130
-
131
- label.text = "(minute):(second)"
132
-
133
-
134
-
135
- }
136
-
137
- @IBAction func startbutton(_ sender: Any) {
138
-
139
-
140
-
141
- if timer == timer{
142
-
143
- if timer.isValid == true {
144
-
145
- return
146
-
147
- }
148
-
149
- }
150
-
151
-
152
-
153
- let minutes = dataList[pickerView.selectedRow(inComponent: 0)]
154
-
155
- let seconds = dataList2[pickerView.selectedRow(inComponent: 1)]
156
-
157
-
158
-
159
- time = Int(minutes)! * 60 + Int(seconds)!
160
-
161
-
162
-
163
-
164
-
165
- timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.letGo),userInfo: nil, repeats: true)
166
-
167
-
168
-
169
- }
170
-
171
-
172
-
173
- //タイマーから呼び出されるメソッド
174
-
175
- func letGo(){
176
-
177
- time -= 1
178
-
179
- label.text = "(time / 60):(time % 60)"
180
-
181
-
182
-
183
-
184
-
185
- if time <= 0 {
186
-
187
- timer.invalidate()
188
-
189
- label.text = "Finish"
190
-
191
- //終了時のバイブ音
192
-
193
- AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
194
-
195
-
196
-
197
- }
198
-
199
- }
200
-
201
-
202
-
203
- @IBAction func stopbutton(_ sender: Any) {
204
-
205
-
206
-
207
- if timer == timer{
208
-
209
- if timer.isValid == true {
210
-
211
- timer.invalidate()
212
-
213
- }
214
-
215
- }
216
-
217
-
218
-
219
- }
220
-
221
-
222
-
223
- override func viewDidAppear(_ animated: Bool) {
224
-
225
- time = 0
226
-
227
-
228
-
229
- _ = letGo()
230
-
231
- }
232
-
233
-
234
-
235
- @IBAction func finishbutton(_ sender: Any) {
236
-
237
- timer.invalidate()
238
-
239
-
240
-
241
- let minutes = dataList[pickerView.selectedRow(inComponent: 0)]
242
-
243
- let seconds = dataList2[pickerView.selectedRow(inComponent: 1)]
244
-
245
-
246
-
247
- time = Int(minutes)! * 60 + Int(seconds)!
248
-
249
-
250
-
251
- label.text = "(minutes):(seconds)"
252
-
253
-
254
-
255
- }
256
-
257
-
258
-
259
- func vibrate(timer: Timer) {
260
-
261
- AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
262
-
263
- }
264
-
265
-
266
-
267
- override func didReceiveMemoryWarning() {
268
-
269
- super.didReceiveMemoryWarning()
270
-
271
- }
272
-
273
-
274
-
275
- }
276
-
277
- ```
278
-
279
1
  **やりたいこと**
280
2
 
281
3
  一時停止したタイマーからカウントダウンさせたい。
@@ -287,11 +9,3 @@
287
9
  **自分でやったこと**
288
10
 
289
11
  一時停止までは出来たのですが例えば60秒にセットしたタイマーをカウントダウンさせているとき、途中の30秒で一時停止をさせてまた30秒からカウントダウンをさせたいのですがどうしても初めにセットした60秒からまたカウントダウンし始めるので止めたタイムから引き続きカウントダウンをさせたい。
290
-
291
-
292
-
293
- ![![イメージ説明](3c953a67bd4b8edb75c82ba7e8dd0bc4.png)]
294
-
295
-
296
-
297
- ![イメージ説明](3aa997ba60777799a0d16311bc24056f.png)

4

画像の追加

2017/09/25 11:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -124,11 +124,11 @@
124
124
 
125
125
 
126
126
 
127
- print("\(minute):\(second)")
127
+ print("(minute):(second)")
128
-
129
-
130
-
128
+
129
+
130
+
131
- label.text = "\(minute):\(second)"
131
+ label.text = "(minute):(second)"
132
132
 
133
133
 
134
134
 
@@ -176,7 +176,7 @@
176
176
 
177
177
  time -= 1
178
178
 
179
- label.text = "\(time / 60):\(time % 60)"
179
+ label.text = "(time / 60):(time % 60)"
180
180
 
181
181
 
182
182
 
@@ -248,7 +248,7 @@
248
248
 
249
249
 
250
250
 
251
- label.text = "\(minutes):\(seconds)"
251
+ label.text = "(minutes):(seconds)"
252
252
 
253
253
 
254
254
 
@@ -287,3 +287,11 @@
287
287
  **自分でやったこと**
288
288
 
289
289
  一時停止までは出来たのですが例えば60秒にセットしたタイマーをカウントダウンさせているとき、途中の30秒で一時停止をさせてまた30秒からカウントダウンをさせたいのですがどうしても初めにセットした60秒からまたカウントダウンし始めるので止めたタイムから引き続きカウントダウンをさせたい。
290
+
291
+
292
+
293
+ ![![イメージ説明](3c953a67bd4b8edb75c82ba7e8dd0bc4.png)]
294
+
295
+
296
+
297
+ ![イメージ説明](3aa997ba60777799a0d16311bc24056f.png)

3

説明の追加

2017/09/19 05:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -286,4 +286,4 @@
286
286
 
287
287
  **自分でやったこと**
288
288
 
289
- 一時停止までは出来たのですがカウントダウンを再開させるとセットしたタイマーからまたカウントダウンしてしまう
289
+ 一時停止までは出来たのですが例えば60秒にセットしたタイマーをカウントダウンさせているとき、途中の30秒で一時停止をさせてまた30秒からカウントダウンをさせたいのですがどうしても初めにセットした60秒からまたカウントダウンし始めるので止めたタイムから引き続きカウントダウンをさせたい

2

書式の変更

2017/09/19 02:42

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- タイマー 一時停止と終了時のバイブ音
1
+ タイマー 一時停止について
test CHANGED
@@ -280,12 +280,10 @@
280
280
 
281
281
  一時停止したタイマーからカウントダウンさせたい。
282
282
 
283
- またカウントダウン終了時にバイブ音を鳴らしたい。
283
+
284
284
 
285
285
 
286
286
 
287
287
  **自分でやったこと**
288
288
 
289
- 一時停止までは出来たのですがカウントダウンを再開させるとセットしたタイマーからまたカウントダウンしてしまう。
289
+ 一時停止までは出来たのですがカウントダウンを再開させるとセットしたタイマーからまたカウントダウンしてしまう。
290
-
291
- それとバイブの音を鳴らすのは出来るがカウントダウン終了時にバイブ音を出すことができない。

1

こーどの追加

2017/09/18 22:39

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -188,6 +188,12 @@
188
188
 
189
189
  label.text = "Finish"
190
190
 
191
+ //終了時のバイブ音
192
+
193
+ AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
194
+
195
+
196
+
191
197
  }
192
198
 
193
199
  }