iphone代码 - 自定义表而不是默认表

时间:2010-01-06 13:56:19

标签: iphone objective-c

我正在使用默认样式表(UITableViewCellStyleSubtitle) 我想在每一行中添加多一个detailTextLabel
我该如何定制呢?

代码:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
                                   reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
}

// Leave cells empty if there's no data yet
if (nodeCount > 0)
{
    // Set up the cell...
    ARecord *aRecord = [self.entries objectAtIndex:indexPath.row];

    cell.textLabel.text = aRecord.lDate;
    cell.detailTextLabel.text = aRecord.WNum;

    // Only load cached images; defer new downloads until scrolling ends
    //(!aRecord.appIcon) - use icon
    if (!aRecord.appIcon)
    {
        if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
        {
            [self startIconDownload:aRecord forIndexPath:indexPath];
        }
        // if a download is deferred or in progress, return a placeholder image
        cell.imageView.image = [UIImage imageNamed:@"Placeholder.png"];                
    }
    else
    {
        cell.imageView.image = aRecord.appIcon;
    }

}

return cell;

}

2 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法是向UILabel添加cell.contentView。您最初创建单元格时会这样做。我发现有两件事特别有用:在Interface Builder中的一次性文档中将标签布局在表格单元格上以确定初始帧。设置autoresizingMask也特别有用,这样在调整单元格大小时(由于自动旋转,进入编辑模式等),标签将被适当调整大小。

最后,您需要将表格视图的rowHeight设置为更高的值以容纳更大的单元格,否则您将最终得到重叠的单元格。

另外,在您的标签上设置tag,以便在您更新文字时使用viewWithTag:轻松检索。

答案 1 :(得分:0)

您可以将标签添加到cell.contentView