teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

コードの修正

2018/07/10 06:28

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,23 +3,6 @@
3
3
 
4
4
  class numberView: UIView {
5
5
 
6
-
7
- @IBOutlet var myView: UIView!
8
- @IBOutlet weak var protein: UILabel!
9
- @IBOutlet weak var fat: UILabel!
10
- @IBOutlet weak var carbo: UILabel!
11
- @IBOutlet weak var total: UILabel!
12
- @IBOutlet weak var ptxt: UITextField!
13
- @IBOutlet weak var ftxt: UITextField!
14
- @IBOutlet weak var ctxt: UITextField!
15
- @IBOutlet weak var ktxt: UITextField!
16
-
17
- var delegate:CustomAlertDelegate?
18
-
19
- override func didMoveToSuperview() {
20
- ptxt.becomeFirstResponder()
21
- }
22
-
23
6
  @objc func proteinX(_ sender: UITextField) {
24
7
  if let text = sender.text {
25
8
  protein.text = "P: " + ptxt.text!
@@ -196,15 +179,10 @@
196
179
 
197
180
  ### 実現したい事
198
181
  ~~0. 小数点以下の入力をしたい~~
199
- 0. 選択したtextfieldsのみ入力が反映できるようにしたい。
200
182
 
201
183
  ### 出来ている事/困っている事
202
184
  ~~~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
203
185
 
204
- 0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
205
-
206
- ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
207
-
208
186
  ### 改善点
209
187
  以下のようにすることで小数点以下の値まで入力出来るようになりました。
210
188
  しかし、クリアボタンをタップした時に数字は消えるのですが小数点だけ残ってしまいます。

3

コードの改善

2018/07/10 06:28

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -197,16 +197,11 @@
197
197
  ### 実現したい事
198
198
  ~~0. 小数点以下の入力をしたい~~
199
199
  0. 選択したtextfieldsのみ入力が反映できるようにしたい。
200
- 0. totalラベルにてpfcが入力された時点で自動的に計算され totalラベルに表示させたい。
201
- 0. アラート内に数字のテンキーが用意されているのでtextfielsをタップしてもキーボードを呼び出されないようにしたい。
202
200
 
203
201
  ### 出来ている事/困っている事
204
- ~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
202
+ ~~~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
205
- 原因を考えた結果、Int型のため小数点までの値は入力出来ないのと分かったのでdouble型にしてみたが意図してる事が実現出来なかった。
203
+
206
204
  0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
207
- 0. に関しては単純にどのようにコーディングをすればいいか分からないです。
208
- 数式としては total = p * 4 + c * 9 + c * 4にすれば意図した表示結果になります。
209
- 0. に関しても、自作のテンキーでの入力は実現できたがキーボードを表示させない方法が分からなくて困っています。
210
205
 
211
206
  ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
212
207
 
@@ -245,6 +240,9 @@
245
240
  @IBAction func one(_ sender: Any) {
246
241
 
247
242
  addnumber(number: "1")
243
+ addnumber2(number2: "1")
244
+ addnumber3(number3: "1")
245
+ addnumber4(number4: "1")
248
246
 
249
247
  }
250
248
 

2

コーディングの改善

2018/07/10 06:22

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ```swift
2
2
  import UIKit
3
3
 
4
- class numberViewController: UIView {
4
+ class numberView: UIView {
5
5
 
6
6
 
7
7
  @IBOutlet var myView: UIView!

1

コードの改善点

2018/07/09 15:15

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -116,7 +116,7 @@
116
116
  }
117
117
 
118
118
 
119
- @IBAction func one(_ sender: Any) {
119
+ @IBAction func one(_ sender: Any) {
120
120
 
121
121
  let value = ptxt.text! + "1"
122
122
  if let price = Int(value) {
@@ -140,30 +140,8 @@
140
140
  }
141
141
  }
142
142
 
143
- @IBAction func two(_ sender: Any) {
144
- let value = ptxt.text! + "2"
145
- if let price = Int(value) {
146
- ptxt.text = "(price)"
147
- protein.text = "P: " + ptxt.text!
148
- }
149
- let value2 = ftxt.text! + "2"
150
- if let price = Int(value2) {
151
- ftxt.text = "(price)"
152
- fat.text = "F: " + ftxt.text!
153
- }
154
- let value3 = ctxt.text! + "2"
155
- if let price = Int(value3) {
156
- ctxt.text = "(price)"
157
- carbo.text = "C: " + ctxt.text!
158
- }
159
- let value4 = ktxt.text! + "2"
160
- if let price = Int(value4) {
161
- ktxt.text = "(price)"
162
- total.text = "K: " + ktxt.text! + " kcal"
163
- }
164
- }
165
143
 
166
-   //3~9は字数制限の問題上、省略しています。
144
+   //2~9は字数制限の問題上、省略しています。
167
145
  }
168
146
 
169
147
  @IBAction func zero(_ sender: Any) {
@@ -217,17 +195,78 @@
217
195
  ```
218
196
 
219
197
  ### 実現したい事
220
- 0. 小数点以下の入力をしたい
198
+ ~~0. 小数点以下の入力をしたい~~
221
199
  0. 選択したtextfieldsのみ入力が反映できるようにしたい。
222
200
  0. totalラベルにてpfcが入力された時点で自動的に計算され totalラベルに表示させたい。
223
201
  0. アラート内に数字のテンキーが用意されているのでtextfielsをタップしてもキーボードを呼び出されないようにしたい。
224
202
 
225
203
  ### 出来ている事/困っている事
226
- 0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。
204
+ ~~0. に関してはボタンをタップすると数字が表示されるまで出来た。しかし、20.5のような小数点付きの値を入力しようと小数点を打とうとしても表示されない。~~
227
205
  原因を考えた結果、Int型のため小数点までの値は入力出来ないのと分かったのでdouble型にしてみたが意図してる事が実現出来なかった。
228
206
  0. に関しては各種ボタンに条件分岐をしていないため1を押すと4つある全てのtextfieldsに表示されてしまう。そのため、case文で条件分岐しようとしたが出来ませんでした。
229
207
  0. に関しては単純にどのようにコーディングをすればいいか分からないです。
230
208
  数式としては total = p * 4 + c * 9 + c * 4にすれば意図した表示結果になります。
231
209
  0. に関しても、自作のテンキーでの入力は実現できたがキーボードを表示させない方法が分からなくて困っています。
232
210
 
233
- ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
211
+ ![![イメージ説明](9a6c605230067696dc1a712747875ffd.png)]
212
+
213
+ ### 改善点
214
+ 以下のようにすることで小数点以下の値まで入力出来るようになりました。
215
+ しかし、クリアボタンをタップした時に数字は消えるのですが小数点だけ残ってしまいます。
216
+ ```swift
217
+ func addnumber(number: String) {
218
+ var textnumber = ptxt.text!
219
+ textnumber = textnumber + number
220
+ ptxt.text = textnumber
221
+ protein.text = "P: " + textnumber
222
+ }
223
+
224
+ func addnumber2(number2: String) {
225
+ var textnumber2 = ftxt.text!
226
+ textnumber2 = textnumber2 + number2
227
+ ftxt.text = textnumber2
228
+ fat.text = "F: " + textnumber2
229
+ }
230
+
231
+ func addnumber3(number3: String) {
232
+ var textnumber3 = ctxt.text!
233
+ textnumber3 = textnumber3 + number3
234
+ ctxt.text = textnumber3
235
+ carbo.text = "C" + textnumber3
236
+ }
237
+ func addnumber4(number4: String) {
238
+ var textnumber4 = ktxt.text!
239
+ textnumber4 = textnumber4 + number4
240
+ ktxt.text = textnumber4
241
+ total.text = textnumber4 + "kcal"
242
+ }
243
+
244
+
245
+ @IBAction func one(_ sender: Any) {
246
+
247
+ addnumber(number: "1")
248
+
249
+ }
250
+
251
+ @IBAction func two(_ sender: Any) {
252
+ addnumber(number: "2")
253
+
254
+ }
255
+ //~~省略~~
256
+
257
+ @IBAction func zero(_ sender: Any) {
258
+ addnumber(number: "0")
259
+
260
+ }
261
+
262
+ @IBAction func point(_ sender: Any) {
263
+
264
+ addnumber(number: ".")
265
+
266
+ }
267
+
268
+ @IBAction func clear(_ sender: Any) {
269
+ ptxt.text! = ""
270
+ }
271
+ }
272
+ ```