今天把功能都做完吧~
首先,我们把图片弄到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~
成果:
一、前言 Linux 上面多半有 Firefox,为什麽我还大费周章安装 Google Chrome...
函式 函式运算式 Function expression 函式运算式中文也叫函式表达式 上一篇了解到...
Chap.II Storage Services 存储服务 磁碟:具有不同大小、性能 档案:使你可以...
相信各位在使用各大网站提供的功能时,都会需要注册帐号来获得更多的使用体验,比如:google、fac...
我们昨天为了接下来的学习,安装了"Unity Hub",今天就要来熟悉一下Uni...