在SWIFT中使用带有PARSE的PFQueryTableViewController自定义表格单元格

时间:2014-12-17 12:32:03

标签: ios swift parse-platform

全部,

我使用普通单元格可以正常工作,但我正在尝试使用nib等创建自定义单元格,然后使用PFQueryTableViewController将其链接到PARSE。

这是我的代码:

class CustomCell: PFTableViewCell
{
    @IBOutlet var EventTypeImage: UIImageView!
    @IBOutlet var titleLabel: UILabel!

    }




class TableViewController: PFQueryTableViewController {



    override init!(style: UITableViewStyle, className: String!) {
        super.init(style: style, className: className)
    }


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

        self.parseClassName = "Events_"
        self.pullToRefreshEnabled = true
        self.paginationEnabled = true
        //self.objectsPerPage = 5
        //self.textKey = "TypeOfVenue_"
     }

    override func viewDidLoad() {

        var nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
        tableView.registerNib(nib, forCellReuseIdentifier: "CustomCell")
    }



    override func queryForTable() -> PFQuery! {

        var query = PFQuery(className: self.parseClassName)

        if (objects.count == 0)
        {
            query.cachePolicy = kPFCachePolicyNetworkOnly
        }

        return query


    }



     override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!, object: PFObject!) -> PFTableViewCell!
     {
        var custom = CustomCell()

        var cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as PFTableViewCell!

        custom.titleLabel?.text = object["Title"] as NSString
        return cell


     }

所以我创建了一个自定义单元格并将其与顶部的CustomCell类相关联。在CellForRowatIndexPath中。我已经创建了一个CustomCell类的新实例,并从中获取了titlelabel,然后将其转换为NSstring并使用PARSE获取对象'。

我没有任何错误。我在桌面上看到的只是一个旋转轮说装载。

任何建议都会很棒。

2 个答案:

答案 0 :(得分:0)

有一个类似的问题,笔尖没有被加载。然后我意识到我可以在故事板中的tableviewcontroller的原型中创建自定义单元格,我做了,并在身份检查器中更改了类,如图所示。这里QuestionCell将是您的自定义单元格文件。

enter image description here

我会将CustomCell分成另外一个,并确保在原型身份检查器中选择了它。同样,确保样式是自定义的,并确保故事板中的任何标签与新CustomCell类中的iboutlet连接。

enter image description here

然后,您可以删除

var nib = UINib(nibName: "CustomTableViewCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "CustomCell")

因为您正在使用原型。

然后替换

var cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as PFTableViewCell!

var cell:CustomCell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as? CustomCell
你应该好好去!如果有效,请告诉我!

答案 1 :(得分:-1)

在为此init方法添加初始化程序属性时,我还有一个旋转加载轮:

required init(coder aDecoder: NSCoder)

但是,相反,这样做了:

//class TableViewController: PFQueryTableViewController

override init!(style: UITableViewStyle, className: String!) {
    super.init(style: style, className: className)

    self.parseClassName = "todo"
    self.pullToRefreshEnabled = true
    self.paginationEnabled = true
    self.objectsPerPage = 30
    self.tableView.estimatedRowHeight = 80
}