是否可以从collectionViewCell检索数据?

时间:2014-11-08 18:11:10

标签: swift uicollectionviewcell

我希望从可见单元格中检索数据,例如label.text,而且我不知道如何做到这一点。

普通上下文:我有一个显示问题的collectionView(每个单元格显示一个问题) collectionView位于UIView中。

在同一个uiview中,我有一个按钮,当按下该按钮时,应该验证问题的答案。 在这一点上,我唯一要做的就是将@IBAction链接到按钮,以便从可见单元格中打印出问题(只有一个单元格可见)。

这是我如何构建单元格

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
        return 1
    }

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//        return arr.count
        return questionData.count
    }

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        let cell:CollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as CollectionViewCell

        let thereq:PFObject = self.questionData.objectAtIndex(indexPath.row) as PFObject

//        cell.contentView.frame = cell.bounds
        var action = thereq.objectForKey("action") as String
        var what = thereq.objectForKey("what") as String
        cell.askingQuestionLabel.text = "where \(action) \(what)"

        return cell
    }

按钮触摸(按钮不在单元格中)。

我知道visibleCells()存在,但看起来我无法从中检索信息。

        for cell in self.collectionView!.visibleCells() as [UICollectionViewCell] {

        }

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

您已拥有自定义集合视图单元类。显而易见的解决方案是将PFObject传递给cellForItemAtIndexRow方法中的CollectionViewCell,然后在单击按钮时从单元格中检索它。

将showCells的返回值转换为集合视图单元类,然后将PFObject从中拉出。

答案 1 :(得分:0)

要访问可见单元格中的数据(例如label.text),可以使用visibleCells()方法,如下所示:

for item in self.collectionView!.visibleCells() as [UICollectionViewCell] {
            var indexpath : NSIndexPath = self.collectionView!.indexPathForCell(item as CollectionViewCell)!
            var cell : CollectionViewCell = self.collectionView!.cellForItemAtIndexPath(indexpath) as CollectionViewCell

            //access cell data
            println(cell.labelName.text)
        }