iphone如何以编程方式自定义UITableViewCell cell.textlabel和cell.detailtextlabel

时间:2011-01-08 07:13:52

标签: iphone objective-c cocoa-touch ios4 uitableview

在我的iPhone App中在表格视图单元格中,我想显示一个主标题和5个无副标题 假设item1为主标题,item2,item4,item5和item6为字幕,

因为我有两个数组用于传递表视图单元格中的值 一个用于cell.textLabel.text = 第二个用于cell.detailTextLabel.text

alt text

现在我希望灵活地将item2设为maintitle,并希望将item1添加到副标题

alt text

如何从单个数组中以编程方式设置标题和副标题?和其中任何一个

请帮助和建议,

谢谢。

3 个答案:

答案 0 :(得分:1)

您需要为UITableViewCell创建子类并添加所需的标签。看看Apple CustomTableViewCell示例代码。你可以从here获得它。

答案 1 :(得分:1)

使用您想要的任何格式创建.xib,并将其作为单元格的nib加载。然后,您可以标记每个UILabel并通过标记引用它们:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"CustomCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"youCustomCellNibName" owner:self options:nil];
        cell = yourCell; // UITableViewCell property defined in your interface
        self.yourCell = nil;
    }

    // Grab the cell data
    NSArray *cellArray = [yourArrayOfArrays objectAtIndex:indexPath.row];

    // Configure the cell

    // Main Title
    UILabel *label = (UILabel *)[cell viewWithTag:1];
    label.text = [cellArray objectAtIndex:0];

    // A subtitle
    label = (UILabel *)[cell viewWithTag:2];
    label.text = [cellArray objectAtIndex:1];

    //... etc., setting all of your labels to the appropriate array item
    return cell;
}

使您可以灵活地创建所需的精确单元格并轻松修改它。无需子类化并在代码中完成所有操作。

答案 2 :(得分:0)