1.我正在使用两个不同设计的两个集合视图。子类化两个不同的单元格,但我在下面的方法得到错误 它显示缺少返回功能,但我已经返回细胞 2.我应该通过故事板给出不同布局的singel collectinon视图子类
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
if collectionView == similarProductCollection || collectionView == moreShpsColectionView
{
var productCell = SimilarProductCollectionViewCell()
if collectionView == similarProductCollection
{
productCell=similarProductCollection.dequeueReusableCell(withReuseIdentifier: "collecCell", for: indexPath) as! SimilarProductCollectionViewCell
return productCell
}
else{
// productCell=NSNull
var shopsCell = MoreShpsCollectionViewCell()
shopsCell=moreShpsColectionView.dequeueReusableCell(withReuseIdentifier:"moreCell", for: indexPath) as! MoreShpsCollectionViewCell
return shopsCell
}
}
}
答案 0 :(得分:2)
使用如下:
显示缺少返回函数意味着您不返回外部块中的任何单元格,因此写入如下所示的条件。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
if collectionView == similarProductCollection
{
var productCell = SimilarProductCollectionViewCell()
productCell=similarProductCollection.dequeueReusableCell(withReuseIdentifier: "collecCell", for: indexPath) as! SimilarProductCollectionViewCell
return productCell
}else{
// productCell=NSNull
var shopsCell = MoreShpsCollectionViewCell()
shopsCell=moreShpsColectionView.dequeueReusableCell(withReuseIdentifier:"moreCell", for: indexPath) as! MoreShpsCollectionViewCell
return shopsCell
}
}
答案 1 :(得分:1)
如果这是假的:
if collectionView == similarProductCollection || collectionView == moreShpsColectionView
{
}
什么都不返回
示例:强>
func someFunction() -> Bool {
let something = true
if(something){
return true
}
}
即使您100%确定它会起作用,也会产生错误。您需要将其更改为:
func someFunction() -> Bool {
let something = true
if(something){
return true
}else{
return false
}
}
答案 2 :(得分:0)
使用如下,它可能有用。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
var cell: UICollectionViewCell?
if collectionView == similarProductCollection
{
cell = similarProductCollection.dequeueReusableCell(withReuseIdentifier: "collecCell", for: indexPath) as! SimilarProductCollectionViewCell
}else{
cell = moreShpsColectionView.dequeueReusableCell(withReuseIdentifier:"moreCell", for: indexPath) as! MoreShpsCollectionViewCell
}
return cell
}