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

質問編集履歴

2

コードの大幅な変更

2018/05/14 15:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,15 @@
1
1
  ```swift
2
+ //ViewController.swift
2
3
  import UIKit
3
4
 
4
5
  class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate{
5
6
 
6
7
  @IBOutlet weak var mytableView: UITableView!
7
8
 
9
+ //構造体
10
+ let initialItems: [String] = []
11
+ var kei: [Cell] = Array()
12
+
8
13
  var item: [String] = []
9
14
  var cnt = 0
10
15
  var itemTotal: [[String]] = [[]]
@@ -27,24 +32,6 @@
27
32
  return cell
28
33
  }
29
34
 
30
- //ボタンについて
31
- let button = UIButton()
32
- button.backgroundColor = UIColor.lightGray
33
- button.setTitle("➕", for: .normal)
34
- button.tintColor = UIColor.red
35
- cell.contentView.addSubview(button)
36
-
37
- button.translatesAutoresizingMaskIntoConstraints = false
38
- cell.contentView.rightAnchor.constraint(equalTo: button.rightAnchor, constant: 8).isActive = true
39
- // 中央にする
40
- //button.centerYAnchor.constraint(equalTo: cell.centerYAnchor).isActive = true
41
- //丸みに対して
42
- button.layer.cornerRadius = 10
43
- button.layer.masksToBounds = true
44
-
45
- cell.contentView.heightAnchor.constraint(equalTo: button.heightAnchor, multiplier: 1).isActive = true
46
-
47
-
48
35
  var labels: [UILabel] = []
49
36
  //labelについて
50
37
  for i in item {
@@ -193,40 +180,11 @@
193
180
  return false
194
181
  }
195
182
  }
183
+
196
184
 
197
- func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
198
- return 40
185
+ //注意
199
- }
200
186
 
201
- override func viewDidLoad() {
202
- super.viewDidLoad()
203
- mytableView.delegate = self
204
- mytableView.dataSource = self
205
- mytableView.estimatedRowHeight = 60
206
- }
207
-
208
-
209
-
210
- override func didReceiveMemoryWarning() {
211
- super.didReceiveMemoryWarning()
212
- // Dispose of any resources that can be recreated.
213
- }
214
-
215
-
216
- }
217
-
218
- ```
219
-
220
- ### **今やっている事**
221
- まずボタンをタップした時に題名となるcellとその中身となるcellを挿入しようとしています。
222
- 中身となるcellはスワイプによって編集できるようにしています。
223
-
224
- **困っている事**
225
- 最初に題名となるセルを追加しようとコードを加えたのですが実行時にはエラーは起きないのですが実際にアラートを呼び出し**OK**とタップすると落ちてしまいます。
226
- エラーはsignal SIGABRTによるものです。
227
-
228
- ```swift
229
- func alert(){
187
+ func alert(){
230
188
  // テキストフィールド付きアラート表示
231
189
 
232
190
  let alert = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .alert)
@@ -272,4 +230,70 @@
272
230
  self.present(alert, animated: true, completion: nil)
273
231
 
274
232
  }
233
+
234
+ func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
235
+ return 40
236
+ }
237
+
238
+ override func viewDidLoad() {
239
+ super.viewDidLoad()
240
+
241
+ mytableView.delegate = self
242
+ mytableView.dataSource = self
243
+ mytableView.estimatedRowHeight = 60
244
+ //mytableView.backgroundColor = UIColor(red: 0.0, green: 0.8, blue: 1.0, alpha: 0.1)
245
+
246
+ for item in initialItems {
247
+ kei.append(Cell(item: item, cellcolor: false))
248
+ }
249
+ }
250
+
251
+
252
+
253
+ override func didReceiveMemoryWarning() {
254
+ super.didReceiveMemoryWarning()
255
+ // Dispose of any resources that can be recreated.
256
+ }
257
+
258
+
259
+ }
275
- ```
260
+ ```
261
+
262
+ ### **今やっている事**
263
+ まずボタンをタップした時に題名となるcellとその中身となるcellを挿入しようとしています。
264
+ 中身となるcellはスワイプによって編集できるようにしています。
265
+
266
+ **困っている事**
267
+ 最初に題名となるセルを追加しようとコードを加えたのですが実行時にはエラーは起きないのですが実際にアラートを呼び出し**OK**とタップすると落ちてしまいます。
268
+ エラーはsignal SIGABRTによるものです。
269
+
270
+ ```swift
271
+ //cell.swift
272
+ struct Cell {
273
+ //var category: String
274
+ //var name: String
275
+ var title: String
276
+ var item: String
277
+ var cellcolor: Bool
278
+ var cnt = 0
279
+
280
+ init(item: String,cellcolor: Bool) {
281
+ self.init(title: item,item: item,cellcolor: cellcolor)
282
+ self.item = item;
283
+ self.cellcolor = cellcolor;
284
+ //self.itemTotal = item;
285
+ }
286
+
287
+ init(title: String,item: String,cellcolor: Bool) {
288
+ self.title = title;
289
+ self.item = item;
290
+ self.cellcolor = cellcolor;
291
+ //self.itemTotal = item;
292
+ }
293
+
294
+ }
295
+
296
+ ```
297
+
298
+ 最新のコードです。
299
+ 構造体でtitleセルとdetailセルをグループ化しようとしています。

1

説明の追加

2018/05/14 15:41

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -223,4 +223,53 @@
223
223
 
224
224
  **困っている事**
225
225
  最初に題名となるセルを追加しようとコードを加えたのですが実行時にはエラーは起きないのですが実際にアラートを呼び出し**OK**とタップすると落ちてしまいます。
226
- エラーはsignal SIGABRTによるものです。
226
+ エラーはsignal SIGABRTによるものです。
227
+
228
+ ```swift
229
+ func alert(){
230
+ // テキストフィールド付きアラート表示
231
+
232
+ let alert = UIAlertController(title: "タイトル", message: "メッセージ", preferredStyle: .alert)
233
+
234
+ // OKボタンの設定
235
+ let okAction = UIAlertAction(title: "OK", style: .default, handler: {
236
+ (action:UIAlertAction!) -> Void in
237
+
238
+ // OKを押した時入力されていたテキストを表示
239
+ if let textFields = alert.textFields {
240
+
241
+ // アラートに含まれるすべてのテキストフィールドを調べる
242
+ for textField in textFields {
243
+ self.item.insert(textField.text!, at: 0)
244
+ self.itemTotal[self.cnt] = self.item
245
+
246
+ if self.item.count % 5 == 0, self.itemTotal[0].count > 1 {
247
+ self.cnt += 1
248
+ self.itemTotal.append([])
249
+ self.item = []
250
+ print(textField.text!)
251
+ //self.Gesture()
252
+ //self.doubleclic()
253
+ }
254
+ self.mytableView.reloadData()
255
+ }
256
+ }
257
+ })
258
+ alert.addAction(okAction)
259
+
260
+ // キャンセルボタンの設定
261
+ let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
262
+ alert.addAction(cancelAction)
263
+
264
+ // テキストフィールドを追加
265
+ alert.addTextField(configurationHandler: {(textField: UITextField!) -> Void in
266
+ textField.placeholder = "テキスト"
267
+ })
268
+
269
+ alert.view.setNeedsLayout() // シミュレータの種類によっては、これがないと警告が発生
270
+
271
+ // アラートを画面に表示
272
+ self.present(alert, animated: true, completion: nil)
273
+
274
+ }
275
+ ```