1

我正在使用 Parse 中的部分和分页实现 PFQueryTableViewController。因为我使用的是部分,所以我需要自己设置“加载更多”单元格。但是,我似乎无法访问方法 cellForNextPageAtIndexPath - 我收到一个错误: ''UITablView' does not have a member name 'cellForNextPageAtIndexPath' ' 。

我环顾四周,关于这个主题的唯一资源似乎是这个未回答的问题:cellForNextPageAtIndexPath in swift

这是我的代码:

override func tableView(tableView: UITableView, cellForNextPageAtIndexPath indexPath: NSIndexPath) -> PFTableViewCell? {
    return PFTableViewCell()
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject!) -> PFTableViewCell? {


    let objectId = objectIdForSection((indexPath.section))
    let rowIndecesInSection = sections[objectId]!
    let cellType = rowIndecesInSection[(indexPath.row)].cellType
    var cell : PFTableViewCell


    if (indexPath.section == self.objects?.count) {
        cell = tableView.cellForNextPageAtIndexPath(indexPath) //'UITablView' does not have a member name 'cellForNextPageAtIndexPath'
    }


    switch cellType {
    case "ImageCell" :
        cell = setupImageCell(objectId, indexPath: indexPath, identifier: cellType)
    case "PostTextCell" :
        //cell = setupImageCell(objectId, indexPath: indexPath, identifier: "ImageCell")
        cell = setupTextCell(objectId, indexPath: indexPath, identifier: cellType)
    case "CommentsCell" :
        cell = setupCommentsCell(objectId, indexPath: indexPath, identifier: cellType)
    case "UpvoteCell" :
        cell = setupUpvoteCell(objectId, indexPath: indexPath, identifier: cellType)
    case "DividerCell" :
        cell = setupDividerCell(indexPath, identifier: cellType)
    default : print("unrecognised cell type")
        cell = PFTableViewCell()
    }
    cell.selectionStyle = UITableViewCellSelectionStyle.None

    return cell
}
4

1 回答 1

3

我知道这有点晚了,但我只是想通了这一点,并想与未来的访客分享。

如果要在解析中自定义通常的“加载更多...”分页单元,请执行以下操作:

1) 创建一个子类 PFTableViewCell 的新类。出于演示目的,我们将其称为 PaginationCell。

2) 将 PaginationCell 类的所有内容替换为以下内容:

  import UIKit
  import Parse
  import ParseUI


 class PaginateCell: PFTableViewCell {



 override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
    super.init(style: style, reuseIdentifier: "paginateCell")


}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)!
}

上面我们刚刚使用“paginateCell”的重用标识符初始化单元格。这以编程方式设置重用标识符。

3) 在您的 PFQueryTableViewController 中,实现以下方法:

   override func tableView(tableView: UITableView, cellForNextPageAtIndexPath indexPath: NSIndexPath) -> PFTableViewCell? {


}

3)创建一个笔尖文件。出于演示目的,我将文件称为 paginateCellNib.xib。根据需要设计自定义单元格。请务必设置单元重用标识符并使​​其与上述匹配。将自定义类设置为我们上面创建的 PaginationCell 类,并将所有 IBoutlet 连接到该类。

4) 现在,将上面的 cellForNextPageAtIndexPath 的内容替换为以下内容:

    override func tableView(tableView: UITableView, cellForNextPageAtIndexPath indexPath: NSIndexPath) -> PFTableViewCell? {

    // register the class of the custom cell  
    tableView.registerClass(PaginateCell.self, forCellReuseIdentifier: "paginateCell")
    //register the nib file the cell belongs to
    tableView.registerNib(UINib(nibName: "paginateCellNib", bundle: nil), forCellReuseIdentifier: "paginateCell")

    //dequeue cell
    let cell = tableView.dequeueReusableCellWithIdentifier("paginateCell") as! PaginateCell

    cell.yourLabelHere.text = "your text here"





    return cell
}
于 2015-10-28T02:24:35.023 回答