找不到会员'CellForItemAtIndexPath'

时间:2015-04-07 11:49:51

标签: ios swift

让我来描述我的问题。

我写了一个名为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

1 个答案:

答案 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!作为演员。