Swift tableview数据填充

时间:2015-01-30 21:58:40

标签: uitableview swift

在swift中制作一个简单的Tableview,tableview根本不会填充任何内容。图像正在填充。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cellIdentifier = "cellIdentifier";
    var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell;

    if !(cell != nil){
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle,
            reuseIdentifier: cellIdentifier)

    }

    if(indexPath.row==0){
        cell!.textLabel.text = "POG Validation"
        cell!.imageView.image =  UIImage(named: "myImg")
    }

return cell;

cell!.textLabel的框架是(0,0,0,0)。并且没有填充任何数据。

(lldb) po cell!.textLabel;

<UITableViewLabel: 0x7ce6c510; frame = (0 0; 0 0); userInteractionEnabled =  NO; layer = <_UILabelLayer: 0x7ce6c5d0>>

1 个答案:

答案 0 :(得分:1)

修复编译错误后,您的代码运行良好:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cellIdentifier = "cellIdentifier";
    var cell: UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell;

    if !(cell != nil){
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle,
            reuseIdentifier: cellIdentifier)

    }

    if(indexPath.row==0){
        // your forgot the '?'s
        cell!.textLabel?.text = "POG Validation"
        cell!.imageView?.image =  UIImage(named: "myImg")
    }

    return cell!; // you forgot the '!'
}

我会这样写的:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cellIdentifier = "cellIdentifier";
    let dequedCell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? UITableViewCell
    let cell = dequedCell ?? UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier) as UITableViewCell

    if(indexPath.row==0){
        cell.textLabel?.text = "POG Validation"
        cell.imageView?.image = UIImage(named: "myImg")
    }

    return cell;
}