iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
Mobile Development

IOS菜逼八連續30天挑戰系列 第 22

Day 22 UICollectionView的練習 (2/2)

今天把功能都做完吧~
首先,我們把圖片弄到Assets.xcassets裏面,直接把照片拖曳到左邊紅色框框圈起來處就行了~

然後回到MainVC.swift,在class MainVC,新增UICollectionViewDelegate跟UICollectionViewDataSource,然後在下面的viewDidLoad
設定delegate跟datasource。

MyCollectionView.delegate = self
MyCollectionView.dataSource = self

記得要先把MainVC.xib檔案裏面的CollectionView的OUtlet拉好喔~

@IBOutlet var MyCollectionView: UICollectionView!

然後我們宣告一個空陣列放我們的資料,之後再用append功能把東西加進去,陣列裡放的是我們上一篇建立的陣列裡放的是我們上一篇建立的stuct(宣告在class裏面,viewDidLoad外面)

var place = [collectionViewCellData]()

接著設定numberOfSections跟numberOfItemsInSection:

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 1
}
    
    
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return place.count
}

然後cellForItemAt裡面放:

//我們剛剛註冊的內容,indentifier是Cell,as?後面接的是nib,是我nibName的東西,不要弄錯
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as? MyCollectionViewCell

然後cell裡面要有圖片跟文字,所以:

cell!.image.image = place[indexPath.row].image
cell!.name.text = place[indexPath.row].placeName

最後記得return cell!

補充一下加驚嘆號的原因,這個是跟optional有關,簡單說,有點像是我們要把CollectionViewCell解開,所以cell要加驚嘆號

沒加上驚嘆號,編譯器報的錯:

原因就是你沒解開,所以你可以在as那邊的?改成!

最後~把圖片跟文字弄進去:

func item(){
        place.append(collectionViewCellData(image: UIImage(named: "taipei")!, placeName: "台北"))
        place.append(collectionViewCellData(image: UIImage(named: "tokyo")!, placeName: "東京"))
        place.append(collectionViewCellData(image: UIImage(named: "newyork")!, placeName: "紐約"))
        place.append(collectionViewCellData(image: UIImage(named: "seoul")!, placeName: "首爾"))
        place.append(collectionViewCellData(image: UIImage(named: "moscow")!, placeName: "莫斯科"))
        place.append(collectionViewCellData(image: UIImage(named: "beijing")!, placeName: "北京"))
        place.append(collectionViewCellData(image: UIImage(named: "paris")!, placeName: "巴黎"))
        
    }

然後把這個功能加到viewDidLoad裏面,然後不要忘記reloadData~

成果:


上一篇
Day 21 UICollectionView的練習(1/2)
下一篇
Day 23 XIB跳轉頁面以及UIAlertController的練習(1/3)
系列文
IOS菜逼八連續30天挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言