Swift隨手紀錄Day7-Pull to refresh
Darren
Swift
防止偷懶日記Day7 目前在實現collectionView之後對cell內資料的reload方式遇到了一點瓶頸 正在思考有沒有更好的解決方式
防止偷懶日記Day7
目前在實現collectionView之後對cell內資料的reload方式遇到了一點瓶頸
正在思考有沒有更好的解決方式
現在的做法首先會新增一個Player.swift檔案來做為選手資料的模型
需要的內容有照片、姓名、守備位置、背號以及用來儲存成績的文字陣列
import
struct
Player
let
String
let
String
let
String
let
Array
String
let
UIImage
}
有了模型就可以在RecordController裡面先實作一些假資料來放看看
先在class外作出用來存資料的陣列
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
var
=
"一安"
"三振"
"保送"
"二安"
在RecordController裡實作新的選手物件
let
Player
=
let
=
Player
"Yohoho"
"一棒"
"中外"
UIImage
let
=
Player
"Yohoho"
"二棒"
"二壘"
UIImage
let
=
Player
"Yohoho"
"三棒"
"游擊"
UIImage
let
=
Player
"Yohoho"
"四棒"
"一壘"
UIImage
let
=
Player
"Yohoho"
"五棒"
"三壘"
UIImage
let
=
Player
"Yohoho"
"六棒"
"捕手"
UIImage
let
=
Player
"Yohoho"
"七棒"
"DH"
UIImage
let
=
Player
"Yohoho"
"八棒"
"右外"
UIImage
let
=
Player
"Yohoho"
"九棒"
"左外"
UIImage
return
}()
接下來把昨天在RecordCell.swift內實現的button.addTarget先改放到RecordController.swift內
改在cellForItemAt這個function內來處理
順便將上面實作的假資料放進cell裡面
override
func
collectionView
_
collectionView
UICollectionView
cellForItemAt
indexPath
IndexPath
UICollectionViewCell
let
=
as?
RecordCell
cell?
=
cell?
=
let
=
cell?
self
#selector
cell?
=
cell?
=
+
" - "
+
cell?
=
String
return
!
}
接著把sentRecord的function也拿到這裡來修改一下
func
sentRecord
sender
UIButton
print
"Hit Button\(sender.tag)
switch
case
0
recordArray0.append("New Record1"
case
1
recordArray1.append("New Record1"
case
2
recordArray2.append("New Record2"
case
3
recordArray3.append("New Record3"
case
4
recordArray4.append("New Record4"
case
5
recordArray5.append("New Record5"
case
6
recordArray6.append("New Record6"
case
7
recordArray7.append("New Record7"
case
8
recordArray8.append("New Record8"
default
return
}
DispatchQueue
self
?
}
}
目前雖然點擊button可以順利顯示是哪一個button以及更新array內的資料
但是畫面並沒有跟著更新,讓我好好研究一下到底是為什麼…
不過在找資料途中順手把下拉更新給放上去了(雖然也不會更新( ̄ c ̄)y▂ξ)
就當作經驗玩玩看摟,大概長這樣
var
UIRefreshControl
override
func
viewDidLoad
super
collectionView?
=
collectionView?
RecordCell
self
self
self
=
UIRefreshControl
self
=
NSAttributedString
"Reloading"
self
self
#selector
collectionView!
}
func
refresh
sender
AnyObject
{
DispatchQueue
self
?
}
self
}
實際大概長這樣
