声明我的CellClass扩展到UITableViewCell?

时间:2015-09-22 21:50:45

标签: ios swift uitableview

我只是想在我设置的Smiles数组中显示名称的tableview。我需要申报我的小组课程" ClubCell"为了扩展到UITableViewCell,我将如何做到这一点?

class  SmileClub: UITableViewController {

var Smiles: [String] = ["Price Garrett", "Michael Bishop", "Tom Kollross", "Cody Crawford", "Ethan Bernath", "Alex Mlynarz", "Ryan Murphy", "Kelly Murphy", "Ryan Roshan", "Sean Ko"]


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> ClubCell
{
    let cell: ClubCell = tableView.dequeueReusableCellWithIdentifier("ClubCell") as! ClubCell!
    cell.Name.text = self.Smiles[indexPath.row] as String
    return cell
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.Smiles.count
}

2 个答案:

答案 0 :(得分:2)

cellForRowAtIndexPath方法的返回值必须为UITableViewCell,而不是ClubCell

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
    let cell: ClubCell = tableView.dequeueReusableCellWithIdentifier("ClubCell") as! ClubCell!
    cell.Name.text = self.Smiles[indexPath.row] as String
    return cell
}

并确保您的ClubCell课程延伸UITableViewCell

应该是:

class ClubCell : UITableViewCell

答案 1 :(得分:0)

您的ClubCell是UITableViewCell的子类,它应该如下所示:

class ClubCell:UITableViewCell
{
    @IBOutlet weak var Name:UILabel!
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
  let cell = tableView.dequeueReusableCellWithIdentifier("ClubCell",forIndexPath:indexPath) as! ClubCell
     cell.Name.text = self.Smiles[indexPath.row] 
      return cell
}

在这一行中cell.Name.text = self.Smiles[indexPath.row] as String无需向下转换为String,因为您的静态数组已经进入String,因此将其更改为cell.Name.text = self.Smiles[indexPath.row]