使用swift在UIViewController中以编程方式设置UITableView的UITableViewCells

时间:2014-12-09 00:08:26

标签: ios iphone uitableview swift

好的,我的目标是将自定义单元格绘制到UIVableController中以编程方式制作的UITableView中。我有一个名为KillFeedTableViewCell的自定义单元类,它也有一个.xib

我在xib中确定单元格标识符是KillFeedTableViewCell,这也是我在下面的代码中用作标识符的内容

我遇到的问题是它根本无法运行。我运行时没有错误,当我运行时,tableView看起来很完美,没有单元格。我还有一些行来打印文本到控制台,以确保tableView函数正在运行,他们不是..

感谢任何帮助,谢谢!!

在FirstViewController的开头

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
    //code

    var tableView:UITableView = UITableView()

    //code
}

稍后在文件中我像这样设置了tableView

    var fullHeight:CGFloat = self.view.bounds.size.height-50
    tableView.frame = CGRectMake(0, fullHeight, self.view.bounds.size.width, 0)
    // height is zero because you drag the tableView up filling the screen
    tableView.alpha = 0.5
    self.view.addSubview(tableView)

最后在关闭类的括号之前的FirstViewController的末尾,我有必要的tableView函数加上一些......

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
       var tempData = serverAPIHandler.getKillCount(username)
       var tempData2 = JSONSwift(tempData)
       println("table view kill count") // this is here so i know the code runs but this never shows up in the log
       return tempData2["kill_count"].intValue

}
func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
    return 1
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell     {
    let cell: KillFeedTableViewCell = tableView.dequeueReusableCellWithIdentifier("KillFeedTableViewCell") as KillFeedTableViewCell
    println(cell) // this is here so i know the code runs but this never shows up in the log
    return cell;
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
    println("Row \(indexPath.row) selected")
}

1 个答案:

答案 0 :(得分:0)

你必须记得注册Nib文件(通常在viewDidLoad中完成)

UINib *cellNib = [UINib nibWithNibName:@"cell" bundle:nil];
[self.tableView registerNib:cellNib forCellReuseIdentifier:@"cell"];