回答編集履歴

2

誤字修正

2016/09/05 12:44

投稿

TakeOne
TakeOne

スコア6299

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 通常、セルは配列に入っているデータを表示しますから、その場合は配列データを保存すればいいということになります。しかし、前回の質問のコードを見る限り、配列のデータを表示しているのではないような気もしますので、どのようにしてセルを表示しているのか(cellForItemAtIndexPath等)と、どのようにしてセルを並べ替えしているかの具体的コードを見せてもらったらアドバイスができると思います。
5
+ 通常、セルは配列に入っているデータを表示しますから、その場合は配列データを保存すればいいということになります。しかし、前回の質問のコードを見る限り、配列のデータを表示しているのではないような気もしますので、どのようにしてセルを表示しているのか(cellForItemAtIndexPath等)と、どのようにしてセルを並べ替えしているかの具体的コードを見せてもらったらアドバイスができると思います。
6
6
 
7
7
 
8
8
 
@@ -44,7 +44,7 @@
44
44
 
45
45
 
46
46
 
47
- (3)cellForItemAtIndexPath内のswitch文を以下のようにindexPath位置のセルID表示るよう修正
47
+ (3)cellForItemAtIndexPath内のswitch文を以下のようにindexPath位置のセルIDによって表示セルを切り分けるよう修正
48
48
 
49
49
  ``` swift
50
50
 
@@ -87,5 +87,3 @@
87
87
  ```
88
88
 
89
89
 
90
-
91
-

1

回答追記

2016/09/05 12:44

投稿

TakeOne
TakeOne

スコア6299

test CHANGED
@@ -3,3 +3,89 @@
3
3
 
4
4
 
5
5
  通常、セルは配列に入っているデータを表示しますから、その場合は配列データを保存すればいいということになります。しかし、前回の質問のコードを見る限り、配列のデータを表示しているのではないような気もしますので、どのようにしてセルを表示しているのか(cellForItemAtIndexPath等)と、どのようにしてセルを並べ替えしているかの具体的にコードを見せてもらったらアドバイスができると思います。
6
+
7
+
8
+
9
+ ----------------------
10
+
11
+ (9/5 21:05回答追記)
12
+
13
+
14
+
15
+ ソースコードを参照したところ、並び順を定義しているデータがどこにもないので、まずは並び順を定義するデータから作る必要があります。じゃないと並び順を保存できません。結局のところそれはどのセルIDを何番目に表示するかという定義ですから、セルIDの配列を作るのが一番やりやすいです。
16
+
17
+
18
+
19
+ 具体的なサンプルを示します。
20
+
21
+ (1)ViewControllerのプロパティに以下を追加
22
+
23
+ ``` swift
24
+
25
+ var cellIDs:[String] = ["FirstCell","SecondCell","ThirdCell"]
26
+
27
+ ```
28
+
29
+
30
+
31
+ (2)viewDidLoad()内に以下の読み込み処理を追加
32
+
33
+ ``` swift
34
+
35
+ if let cellIDs = NSUserDefaults.standardUserDefaults().arrayForKey("cellIDs") {
36
+
37
+ // 並び順が保存されていれば、それを読み込み
38
+
39
+ self.cellIDs = cellIDs as! [String]
40
+
41
+ }
42
+
43
+ ```
44
+
45
+
46
+
47
+ (3)cellForItemAtIndexPath内のswitch文を以下のようにindexPath位置のセルIDを表示するよう修正
48
+
49
+ ``` swift
50
+
51
+ switch cellIDs[indexPath.item] {
52
+
53
+ case "FirstCell":
54
+
55
+
56
+
57
+ case "SecondCell":
58
+
59
+
60
+
61
+ default:
62
+
63
+
64
+
65
+ }
66
+
67
+ ```
68
+
69
+
70
+
71
+ (4)moveItemAtIndexPath内に以下の配列並べ替え処理と保存処理を追加
72
+
73
+ ``` swift
74
+
75
+ // 移動元をカット
76
+
77
+ let movingItem = cellIDs.removeAtIndex(sourceIndexPath.item)
78
+
79
+ // 移動先に挿入
80
+
81
+ cellIDs.insert(movingItem, atIndex: destinationIndexPath.item)
82
+
83
+ // 並び順を保存
84
+
85
+ NSUserDefaults.standardUserDefaults().setObject(cellIDs, forKey: "cellIDs")
86
+
87
+ ```
88
+
89
+
90
+
91
+