让我来描述我的问题。
我写了一个名为CardCell
的类,它继承自UICollectionViewCell
。
在我的另一个类MainViewController
中,UICollectionView
的子类。创建了一个NSMutableArray实例items
来存储每个单元格的数据。
var items = NSMutableArray()
self.items = NSMutableArray(容量:20) 因为我在0 ... 20 { items.addObject(“Item(i)”) }
将items
移动到CollectionView的indexPath并准备调用。
func collectionView(collectionView: UICollectionView!, moveItemAtIndexPath fromIndexPath: NSIndexPath!, toIndexPath: NSIndexPath!) {
var thing: NSString = items[fromIndexPath.item] as NSString
self.items.removeObjectAtIndex(fromIndexPath.item)
self.items.insertObject(thing, atIndex: toIndexPath.item)
}
最后,我正在尝试使用CardCell
创建items
的实例。
var cell: CardCell = CardCell(self.collectionView?.cellForItemAtIndexPath(self.collectionView?.indexPathsForSelectedItems().first))
接下来,“无法找到成员'CellForItemAtIndexPath'”发生错误。 我需要说的是,这些代码是从Objective-C版本翻译而来的。
Objective-C版本:
PassCell *cell = (PassCell *)[self.collectionView cellForItemAtIndexPath:[[self.collectionView indexPathsForSelectedItems] firstObject]];
请帮我解决这个问题。
非常感谢您的指导和时间。
Ethan Joe
答案 0 :(得分:1)
使用Objective-C的翻译可能会出现问题。我认为您不能使用UICollectionView
实例方法来初始化自定义单元格。
在Objective-C代码中,您将结果转换为自定义单元格类型。我相信Swift你也应该这样做(注意我将语句分成两部分以提高可读性):
let indexPath = self.collectionView?.indexPathsForSelectedItems().first as IndexPath
var cell = self.collectionView?.cellForItemAtIndexPath(indexPath) as CardCell
注意:根据您的定义,您可能需要as?
或as!
作为演员。