質問編集履歴

4

コードの修正

2018/07/10 06:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,40 +8,6 @@
8
8
 
9
9
 
10
10
 
11
-
12
-
13
- @IBOutlet var myView: UIView!
14
-
15
- @IBOutlet weak var protein: UILabel!
16
-
17
- @IBOutlet weak var fat: UILabel!
18
-
19
- @IBOutlet weak var carbo: UILabel!
20
-
21
- @IBOutlet weak var total: UILabel!
22
-
23
- @IBOutlet weak var ptxt: UITextField!
24
-
25
- @IBOutlet weak var ftxt: UITextField!
26
-
27
- @IBOutlet weak var ctxt: UITextField!
28
-
29
- @IBOutlet weak var ktxt: UITextField!
30
-
31
-
32
-
33
- var delegate:CustomAlertDelegate?
34
-
35
-
36
-
37
- override func didMoveToSuperview() {
38
-
39
- ptxt.becomeFirstResponder()
40
-
41
- }
42
-
43
-
44
-
45
11
  @objc func proteinX(_ sender: UITextField) {
46
12
 
47
13
  if let text = sender.text {
@@ -394,8 +360,6 @@
394
360
 
395
361
  ~~0. 小数点以下の入力をしたい~~
396
362
 
397
- 0. 選択したtextfieldsのみ入力が反映できるようにしたい。
398
-
399
363
 
400
364
 
401
365
  ### 出来ている事/困っている事
@@ -404,14 +368,6 @@
404
368
 
405
369
 
406
370
 
407
- 0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
408
-
409
-
410
-
411
- ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
412
-
413
-
414
-
415
371
  ### 改善点
416
372
 
417
373
  以下のようにすることで小数点以下の値まで入力出来るようになりました。

3

コードの改善

2018/07/10 06:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -396,26 +396,16 @@
396
396
 
397
397
  0. 選択したtextfieldsのみ入力が反映できるようにしたい。
398
398
 
399
- 0. totalラベルにてpfcが入力された時点で自動的に計算され totalラベルに表示させたい。
400
-
401
- 0. アラート内に数字のテンキーが用意されているのでtextfielsをタップしてもキーボードを呼び出されないようにしたい。
402
-
403
399
 
404
400
 
405
401
  ### 出来ている事/困っている事
406
402
 
407
- ~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
403
+ ~~~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
408
-
409
- 原因を考えた結果、Int型のため小数点までの値は入力出来ないのと分かったのでdouble型にしてみたが意図してる事が実現出来なかった。
404
+
405
+
410
406
 
411
407
  0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
412
408
 
413
- 0. に関しては単純にどのようにコーディングをすればいいか分からないです。
414
-
415
- 数式としては total = p * 4 + c * 9 + c * 4にすれば意図した表示結果になります。
416
-
417
- 0. に関しても、自作のテンキーでの入力は実現できたがキーボードを表示させない方法が分からなくて困っています。
418
-
419
409
 
420
410
 
421
411
  ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
@@ -492,6 +482,12 @@
492
482
 
493
483
  addnumber(number: "1")
494
484
 
485
+ addnumber2(number2: "1")
486
+
487
+ addnumber3(number3: "1")
488
+
489
+ addnumber4(number4: "1")
490
+
495
491
 
496
492
 
497
493
  }

2

コーディングの改善

2018/07/10 06:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- class numberViewController: UIView {
7
+ class numberView: UIView {
8
8
 
9
9
 
10
10
 

1

コードの改善点

2018/07/09 15:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -234,49 +234,265 @@
234
234
 
235
235
 
236
236
 
237
+ @IBAction func one(_ sender: Any) {
238
+
239
+
240
+
241
+ let value = ptxt.text! + "1"
242
+
243
+ if let price = Int(value) {
244
+
245
+ ptxt.text = "(price)"
246
+
247
+ protein.text = "P: " + ptxt.text!
248
+
249
+ }
250
+
251
+ let value2 = ftxt.text! + "1"
252
+
253
+ if let price = Int(value2) {
254
+
255
+ ftxt.text = "(price)"
256
+
257
+ fat.text = "F: " + ftxt.text!
258
+
259
+ }
260
+
261
+ let value3 = ctxt.text! + "1"
262
+
263
+ if let price = Int(value3) {
264
+
265
+ ctxt.text = "(price)"
266
+
267
+ carbo.text = "C: " + ctxt.text!
268
+
269
+ }
270
+
271
+ let value4 = ktxt.text! + "1"
272
+
273
+ if let price = Int(value4) {
274
+
275
+ ktxt.text = "(price)"
276
+
277
+ total.text = "K: " + ktxt.text! + " kcal"
278
+
279
+ }
280
+
281
+ }
282
+
283
+
284
+
285
+
286
+
287
+   //2~9は字数制限の問題上、省略しています。
288
+
289
+ }
290
+
291
+
292
+
293
+ @IBAction func zero(_ sender: Any) {
294
+
295
+ let value = ptxt.text! + "0"
296
+
297
+ if let price = Int(value) {
298
+
299
+ ptxt.text = "(price)"
300
+
301
+ protein.text = "P: " + ptxt.text!
302
+
303
+ }
304
+
305
+ let value2 = ftxt.text! + "0"
306
+
307
+ if let price = Int(value2) {
308
+
309
+ ftxt.text = "(price)"
310
+
311
+ fat.text = "F: " + ftxt.text!
312
+
313
+ }
314
+
315
+ let value3 = ctxt.text! + "0"
316
+
317
+ if let price = Int(value3) {
318
+
319
+ ctxt.text = "(price)"
320
+
321
+ carbo.text = "C: " + ctxt.text!
322
+
323
+ }
324
+
325
+ let value4 = ktxt.text! + "0"
326
+
327
+ if let price = Int(value4) {
328
+
329
+ ktxt.text = "(price)"
330
+
331
+ total.text = "K: " + ktxt.text! + " kcal"
332
+
333
+ }
334
+
335
+ }
336
+
337
+
338
+
339
+ @IBAction func point(_ sender: Any) {
340
+
341
+
342
+
343
+ let value = ptxt.text! + "."
344
+
345
+ if let price = Double(value) {
346
+
347
+ ptxt.text = "(price)"
348
+
349
+ protein.text = "P: " + ptxt.text!
350
+
351
+ }
352
+
353
+ let value2 = ftxt.text! + "."
354
+
355
+ if let price = Double(value2) {
356
+
357
+ ftxt.text = "(price)"
358
+
359
+ fat.text = "F: " + ftxt.text!
360
+
361
+ }
362
+
363
+ let value3 = ctxt.text! + "."
364
+
365
+ if let price = Double(value3) {
366
+
367
+ ctxt.text = "(price)"
368
+
369
+ carbo.text = "C: " + ctxt.text!
370
+
371
+ }
372
+
373
+ let value4 = ktxt.text! + "."
374
+
375
+ if let price = Double(value4) {
376
+
377
+ ktxt.text = "(price)"
378
+
379
+ total.text = "K: " + ktxt.text! + " kcal"
380
+
381
+ }
382
+
383
+
384
+
385
+ }
386
+
387
+ }
388
+
389
+ ```
390
+
391
+
392
+
393
+ ### 実現したい事
394
+
395
+ ~~0. 小数点以下の入力をしたい~~
396
+
397
+ 0. 選択したtextfieldsのみ入力が反映できるようにしたい。
398
+
399
+ 0. totalラベルにてpfcが入力された時点で自動的に計算され totalラベルに表示させたい。
400
+
401
+ 0. アラート内に数字のテンキーが用意されているのでtextfielsをタップしてもキーボードを呼び出されないようにしたい。
402
+
403
+
404
+
405
+ ### 出来ている事/困っている事
406
+
407
+ ~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
408
+
409
+ 原因を考えた結果、Int型のため小数点までの値は入力出来ないのと分かったのでdouble型にしてみたが意図してる事が実現出来なかった。
410
+
411
+ 0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
412
+
413
+ 0. に関しては単純にどのようにコーディングをすればいいか分からないです。
414
+
415
+ 数式としては total = p * 4 + c * 9 + c * 4にすれば意図した表示結果になります。
416
+
417
+ 0. に関しても、自作のテンキーでの入力は実現できたがキーボードを表示させない方法が分からなくて困っています。
418
+
419
+
420
+
421
+ ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
422
+
423
+
424
+
425
+ ### 改善点
426
+
427
+ 以下のようにすることで小数点以下の値まで入力出来るようになりました。
428
+
429
+ しかし、クリアボタンをタップした時に数字は消えるのですが小数点だけ残ってしまいます。
430
+
431
+ ```swift
432
+
433
+ func addnumber(number: String) {
434
+
435
+ var textnumber = ptxt.text!
436
+
437
+ textnumber = textnumber + number
438
+
439
+ ptxt.text = textnumber
440
+
441
+ protein.text = "P: " + textnumber
442
+
443
+ }
444
+
445
+
446
+
447
+ func addnumber2(number2: String) {
448
+
449
+ var textnumber2 = ftxt.text!
450
+
451
+ textnumber2 = textnumber2 + number2
452
+
453
+ ftxt.text = textnumber2
454
+
455
+ fat.text = "F: " + textnumber2
456
+
457
+ }
458
+
459
+
460
+
461
+ func addnumber3(number3: String) {
462
+
463
+ var textnumber3 = ctxt.text!
464
+
465
+ textnumber3 = textnumber3 + number3
466
+
467
+ ctxt.text = textnumber3
468
+
469
+ carbo.text = "C" + textnumber3
470
+
471
+ }
472
+
473
+ func addnumber4(number4: String) {
474
+
475
+ var textnumber4 = ktxt.text!
476
+
477
+ textnumber4 = textnumber4 + number4
478
+
479
+ ktxt.text = textnumber4
480
+
481
+ total.text = textnumber4 + "kcal"
482
+
483
+ }
484
+
485
+
486
+
487
+
488
+
237
489
  @IBAction func one(_ sender: Any) {
238
490
 
239
491
 
240
492
 
241
- let value = ptxt.text! + "1"
493
+ addnumber(number: "1")
242
-
243
- if let price = Int(value) {
494
+
244
-
245
- ptxt.text = "(price)"
495
+
246
-
247
- protein.text = "P: " + ptxt.text!
248
-
249
- }
250
-
251
- let value2 = ftxt.text! + "1"
252
-
253
- if let price = Int(value2) {
254
-
255
- ftxt.text = "(price)"
256
-
257
- fat.text = "F: " + ftxt.text!
258
-
259
- }
260
-
261
- let value3 = ctxt.text! + "1"
262
-
263
- if let price = Int(value3) {
264
-
265
- ctxt.text = "(price)"
266
-
267
- carbo.text = "C: " + ctxt.text!
268
-
269
- }
270
-
271
- let value4 = ktxt.text! + "1"
272
-
273
- if let price = Int(value4) {
274
-
275
- ktxt.text = "(price)"
276
-
277
- total.text = "K: " + ktxt.text! + " kcal"
278
-
279
- }
280
496
 
281
497
  }
282
498
 
@@ -284,97 +500,21 @@
284
500
 
285
501
  @IBAction func two(_ sender: Any) {
286
502
 
287
- let value = ptxt.text! + "2"
503
+ addnumber(number: "2")
288
-
289
- if let price = Int(value) {
504
+
290
-
291
- ptxt.text = "(price)"
505
+
292
-
293
- protein.text = "P: " + ptxt.text!
506
+
294
-
295
- }
507
+ }
296
-
297
- let value2 = ftxt.text! + "2"
508
+
298
-
299
- if let price = Int(value2) {
300
-
301
- ftxt.text = "(price)"
302
-
303
- fat.text = "F: " + ftxt.text!
304
-
305
- }
306
-
307
- let value3 = ctxt.text! + "2"
308
-
309
- if let price = Int(value3) {
310
-
311
- ctxt.text = "(price)"
312
-
313
- carbo.text = "C: " + ctxt.text!
314
-
315
- }
316
-
317
- let value4 = ktxt.text! + "2"
318
-
319
- if let price = Int(value4) {
320
-
321
- ktxt.text = "(price)"
322
-
323
- total.text = "K: " + ktxt.text! + " kcal"
324
-
325
- }
326
-
327
- }
328
-
329
-
330
-
331
-   //3~9は字数制限の問題上、省略しています。
509
+ //~~省略~~
332
-
333
- }
334
510
 
335
511
 
336
512
 
337
513
  @IBAction func zero(_ sender: Any) {
338
514
 
339
- let value = ptxt.text! + "0"
515
+ addnumber(number: "0")
340
-
341
- if let price = Int(value) {
516
+
342
-
343
- ptxt.text = "(price)"
517
+
344
-
345
- protein.text = "P: " + ptxt.text!
346
-
347
- }
348
-
349
- let value2 = ftxt.text! + "0"
350
-
351
- if let price = Int(value2) {
352
-
353
- ftxt.text = "(price)"
354
-
355
- fat.text = "F: " + ftxt.text!
356
-
357
- }
358
-
359
- let value3 = ctxt.text! + "0"
360
-
361
- if let price = Int(value3) {
362
-
363
- ctxt.text = "(price)"
364
-
365
- carbo.text = "C: " + ctxt.text!
366
-
367
- }
368
-
369
- let value4 = ktxt.text! + "0"
370
-
371
- if let price = Int(value4) {
372
-
373
- ktxt.text = "(price)"
374
-
375
- total.text = "K: " + ktxt.text! + " kcal"
376
-
377
- }
378
518
 
379
519
  }
380
520
 
@@ -384,82 +524,20 @@
384
524
 
385
525
 
386
526
 
387
- let value = ptxt.text! + "."
527
+ addnumber(number: ".")
388
-
389
- if let price = Double(value) {
390
-
391
- ptxt.text = "(price)"
392
-
393
- protein.text = "P: " + ptxt.text!
394
-
395
- }
396
-
397
- let value2 = ftxt.text! + "."
398
-
399
- if let price = Double(value2) {
400
-
401
- ftxt.text = "(price)"
402
-
403
- fat.text = "F: " + ftxt.text!
404
-
405
- }
406
-
407
- let value3 = ctxt.text! + "."
408
-
409
- if let price = Double(value3) {
410
-
411
- ctxt.text = "(price)"
412
-
413
- carbo.text = "C: " + ctxt.text!
414
-
415
- }
416
-
417
- let value4 = ktxt.text! + "."
418
-
419
- if let price = Double(value4) {
420
-
421
- ktxt.text = "(price)"
422
-
423
- total.text = "K: " + ktxt.text! + " kcal"
424
-
425
- }
426
528
 
427
529
 
428
530
 
429
531
  }
430
532
 
533
+
534
+
535
+ @IBAction func clear(_ sender: Any) {
536
+
537
+ ptxt.text! = ""
538
+
539
+ }
540
+
431
541
  }
432
542
 
433
543
  ```
434
-
435
-
436
-
437
- ### 実現したい事
438
-
439
- 0. 小数点以下の入力をしたい
440
-
441
- 0. 選択したtextfieldsのみ入力が反映できるようにしたい。
442
-
443
- 0. totalラベルにてpfcが入力された時点で自動的に計算され totalラベルに表示させたい。
444
-
445
- 0. アラート内に数字のテンキーが用意されているのでtextfielsをタップしてもキーボードを呼び出されないようにしたい。
446
-
447
-
448
-
449
- ### 出来ている事/困っている事
450
-
451
- 0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。
452
-
453
- 原因を考えた結果、Int型のため小数点までの値は入力出来ないのと分かったのでdouble型にしてみたが意図してる事が実現出来なかった。
454
-
455
- 0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
456
-
457
- 0. に関しては単純にどのようにコーディングをすればいいか分からないです。
458
-
459
- 数式としては total = p * 4 + c * 9 + c * 4にすれば意図した表示結果になります。
460
-
461
- 0. に関しても、自作のテンキーでの入力は実現できたがキーボードを表示させない方法が分からなくて困っています。
462
-
463
-
464
-
465
- ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]