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
}