質問編集履歴
2
コードの大幅な変更
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
|
-
|
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
説明の追加
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
|
+
```
|