Tha*_*Hải 15 uiview collectionview ios uicollectionview swift
我正在做这个,我想使用CollectionView,但我还没有看过原型单元格,并且在这种情况下不知道如何使用CollectionView,有人可以帮助我吗?
我尝试使用这种方式,但它比UICollectionView需要大量的时间和管理
Nic*_*chi 33
使用UICollectionView的主要方法是以编程方式管理逻辑.
使用Interface Builder或以编程方式设计单元.
创建主视图控制器,包括带有集合视图的xib(或故事板),并通过Interface Builder将其链接到关联的类.或者,您可以以编程方式将集合视图添加到您的UIViewController
通过在父类之后声明它们来使目标视图控制器符合UICollectionViewDelegate和UICollectionViewDataSource协议:
class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
@IBOutlet weak var collectionView: UICollectionView!
//...
}
Run Code Online (Sandbox Code Playgroud)在viewDidLoad方法中为您的单元注册关联的nib或类,并将数据源和委托协议关联到视图控制器类:
let cellIdentifier = "cellIdentifier"
override func viewDidLoad() {
super.viewDidLoad()
//if you use xibs:
self.collectionView.register(UINib(nibName:"MyCollectionCell", bundle: nil), forCellWithReuseIdentifier: cellIdentifier)
//or if you use class:
self.collectionView.register(MyCollectionCell.self, forCellWithReuseIdentifier: cellIdentifier)
self.collectionView.delegate = self
self.collectionView.dataSource = self
}
Run Code Online (Sandbox Code Playgroud)实现UICollectionViewDelegate和UICollectionViewDataSource协议中声明的方法:
let objects = ["Cat", "Dog", "Fish"]
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.objects.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath) as! MyCollectionCell
//in this example I added a label named "title" into the MyCollectionCell class
cell.title.text = self.objects[indexPath.item]
return cell
}
Run Code Online (Sandbox Code Playgroud)在模拟器中(或在真实设备上)运行您的应用程序和...évoilà!:)
有关详细信息,请访问:https://developer.apple.com/reference/uikit/uicollectionview