如何克服以下明显的名称冲突。 UICollectionViewController
的子类包含这些方法定义,均符合UICollectionViewDelegateFlowLayout
:
func collectionView(collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
// ...
let interimSpacing = collectionView(collectionView,
layout: collectionView.collectionViewLayout,
minimumLineSpacingForSectionAtIndex: indexPath) // <-- ERROR
// ..
}
func collectionView(collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
return 0
}
Swift编译器(在Xcode 7.1.1中)使用此错误标记指示的行:
无法调用非功能类型的值&#39; UICollectionView&#39;
如何在这段代码中对标识符collectionView
的多次使用之间的明显名称冲突进行排序?
更新我还尝试在第一个方法定义中重命名参数,如func collectionView(x: ...
,但问题仍然存在。
答案 0 :(得分:1)
let interimSpacing = self.collectionView(collectionView, layout: collectionViewLayout, minimumLineSpacingForSectionAtIndex: indexPath.section)
集合视图上的原始委托方法没有传递您从sizeForItemAtIndexPath
方法接收的正确参数。
编辑:你还应该注意sectionAtIndex需要indexPath.section而不是整个indexPath