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
}

實際大概長這樣

Thanks for reading!

I hope you found this article helpful. Feel free to share your thoughts or questions.