我在一个视图中需要两个UICollectionViews
。
他们有两个不同的CollectionViewCell
类。第一个CollectionView
单元格类为ConfirmOffersCollectionViewCell
,第二个为ConfirmRequestsCollectionViewCell
。
如果我将两个单元格设置为同一个类,我可以同时显示和CollectionViews
,但它们显示相同的图像。我需要它们由两个独立的图像阵列填充。
我唯一知道的事情就是复制并粘贴我的func collectionView()
代码并更改cellForItemAtIndexPath
和numberOfItemsInSection
属性。但我无法两次运行相同的功能。
以下是代码:
@IBOutlet weak var collectionView1: UICollectionView!
@IBOutlet weak var collectionView2: UICollectionView!
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return images1.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: ConfirmOffersCollectionViewCell = collectionView1.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ConfirmOffersCollectionViewCell
images1[indexPath.row].getDataInBackgroundWithBlock{
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.image.image = image
}
}
return cell
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return images2.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell: ConfirmRequestsCollectionViewCell = collectionView2.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ConfirmRequestsCollectionViewCell
images2[indexPath.row].getDataInBackgroundWithBlock{
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
let image = UIImage(data: imageData!)
cell.image.image = image
}
}
return cell
}
答案 0 :(得分:1)
您无法在单个类中使用相同的功能。相反,您需要以某种方式识别每个集合视图(通过创建出口或给它们标记),然后在每个函数中检查collectionview
参数并将其与集合视图进行比较。示例:
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if collectionView = secondCollectionView{
return images2.count
}else{
return images1.count
}
}
此外,您还需要在cellForRowAtIndexPath
同样检查