質問編集履歴

1

追記

2018/09/13 02:52

投稿

po_tato
po_tato

スコア97

test CHANGED
File without changes
test CHANGED
@@ -38,6 +38,144 @@
38
38
 
39
39
 
40
40
 
41
- 説明下手で申し訳ありませんが
41
+ 例えば
42
42
 
43
+
44
+
45
+ リンクページにございます、
46
+
47
+ ```
48
+
49
+ // 折りたたみフラグ
50
+
51
+ var foldingFlg1 = false
52
+
53
+ var foldingFlg2 = false
54
+
55
+ var foldingFlg3 = false
56
+
57
+
58
+
59
+ // 略
60
+
61
+
62
+
63
+ // セルの数を返す。
64
+
65
+ func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
66
+
67
+ // テーブルビューのセル数の設定する。
68
+
69
+ switch section {
70
+
71
+ case 0:
72
+
73
+ return foldingFlg1 ? 0 : self.items1.count
74
+
75
+ case 1:
76
+
77
+ return foldingFlg2 ? 0 : self.items2.count
78
+
79
+ case 2:
80
+
81
+ return foldingFlg3 ? 0 : self.items3.count
82
+
83
+ default:
84
+
85
+ return 0
86
+
87
+ }
88
+
89
+ }
90
+
91
+
92
+
93
+    // 略
94
+
95
+
96
+
97
+    @objc func tapHeader(gestureRecognizer: UITapGestureRecognizer) {
98
+
99
+ // タップされたセクションを取得する。
100
+
101
+ guard let section = gestureRecognizer.view?.tag as Int! else {
102
+
103
+ return
104
+
105
+ }
106
+
107
+
108
+
109
+ // フラグを設定する。
110
+
111
+ switch section {
112
+
113
+ case 0:
114
+
115
+ foldingFlg1 = foldingFlg1 ? false : true
116
+
117
+ case 1:
118
+
119
+ foldingFlg2 = foldingFlg2 ? false : true
120
+
121
+ case 2:
122
+
123
+ foldingFlg3 = foldingFlg3 ? false : true
124
+
125
+ default:
126
+
127
+ break
128
+
129
+ }
130
+
131
+
132
+
133
+ // タップされたセクションを再読込する。
134
+
135
+ myTableView.reloadSections(NSIndexSet(index: section) as IndexSet, with: .none)
136
+
137
+ }
138
+
139
+ ```
140
+
141
+ この部分あると思いますが、
142
+
143
+ タップしたsectionヘッダーにフラグをつけて、
144
+
145
+ セルの数を返す"numberOfRowsInSection"でフラグによって、セルの個数を0かアイテム数かで
146
+
147
+ 分岐していると思います。
148
+
149
+
150
+
151
+ section0が押されたら、section1も連動させるには
152
+
153
+ 要はsection0のフラグつける部分で、
154
+
155
+ section1に対応するフラグ(foldingFlg2)も追加してしまえばいいのではないかと考え、
156
+
157
+ ```
158
+
159
+ switch section {
160
+
161
+ case 0:
162
+
163
+ foldingFlg1 = foldingFlg1 ? false : true
164
+
165
+        foldingFlg2 = foldingFlg2 ? false : true //追加してみたけど失敗
166
+
167
+ case 1:
168
+
169
+ ...
170
+
171
+ ```
172
+
173
+ このように変更して試しましたが、アプリが落ちてしまいました。
174
+
175
+ ”Thread 1: signal SIGABRT”
176
+
177
+
178
+
179
+ どのように改善すれば良いのか、考え方、アプローチの仕方だけでもいいので
180
+
43
- ご教示していでございます。
181
+ ご教示していただますありがたいです。