防止偷懶日記Day8

繼續處理昨天沒辦法在新增資料之後更新collectionView的問題

在試了一些不同的方法之後

看了console的內容才終於發現了問題所在

發現當下只差沒撞豆腐自殺( ̄ c ̄)y▂ξ,真的是來亂的XD

因為其實我一直有在更新collectionView

原來原因在於我更新了紀錄用的陣列recordArray

但是collectionViewCell的內容是從之前實作的players裡面去拿到資料的

所以雖然更新了recordArray,但players裡實作的內容其實是沒有改變的

知道問題之後就簡單了

稍微修改一下sentRecord()的內容

更新一下players就好

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
func sentRecord(sender: UIButton) {

print("Hit Button\(sender.tag)")
switch sender.tag {
case 0:
players[0].recordArray.append("new")
case 1:
players[1].recordArray.append("record")
case 2:
players[2].recordArray.append("has")
case 3:
players[3].recordArray.append("been")
case 4:
players[4].recordArray.append("add")
case 5:
players[5].recordArray.append("into")
case 6:
players[6].recordArray.append("collectionView")
case 7:
players[7].recordArray.append("cell")
case 8:
players[8].recordArray.append("new")
default:
return
}
DispatchQueue.main.async {
self.collectionView?.reloadData()
}

}

但是Player這個struct在製作時用的是let,所以這邊xcode會提醒要改成var(雖然提醒的地方讓我滿臉問號)

所以就回到Player.swift做一下修正

1
2
3
4
5
6
7
8
9
10
import UIKit

struct Player {
var name: String
var order: String
var position: String
var recordArray: Array<String>
var profileImage: UIImage
}

考慮到之後應該都是會更動的數值,所以統一改成var

接下來執行之後按按看按鈕是不是確實有如我所想的執行

最後順便將螢幕固定成橫躺來更清楚的呈現新增的資料

將TARGETS -> General -> Deployment -> Device Orientation設定為landscape Right

Support

Comments

2017-06-29

⬆︎TOP