cellForNextPageAtIndexPath не отображается в swift2

Я реализую PFQueryTableViewController из Parse с разделами и нумерацией страниц. Поскольку я использую разделы, мне нужно самостоятельно установить ячейку "загрузить больше". Тем не менее, кажется, что я не могу получить доступ к методу cellForNextPageAtIndexPath - я получаю ошибку: "UITablView" не имеет имени элемента "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
}

1 ответ

Я знаю, что уже немного поздно, но я просто понял это и хотел поделиться с нами для будущих посетителей.

Если вы хотите настроить обычную ячейку "Load more..." в разборе, выполните следующие действия:

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)!
}

Выше мы только что инициализировали ячейку с помощью reuseIdentifier "paginateCell". Это программно устанавливает reuseIdentifier.

3) В вашем PFQueryTableViewController реализуйте следующий метод:

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


}

3) Создайте файл пера. Для наших демонстрационных целей я назову файл paginateCellNib.xib. Дизайн пользовательской ячейки, как вы хотите. Обязательно установите ячейку reuseIdentifier и сделайте так, чтобы она соответствовала приведенной выше. Установите пользовательский класс в класс PaginationCell, который мы создали выше, и подключите все IBoutlets к этому классу.

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
}
Другие вопросы по тегам