如何使用2个不同颜色的标签制作UITableViewCell?

时间:2011-10-19 08:38:49

标签: iphone objective-c uitableview uilabel

我想像这样使用UITableViewCell:

enter image description here

“Tel:”的文本颜色必须与数字的文本颜色不同。现在我像往常一样将文本设置为单元格:

cell.textLabel.text=@"Something";

是否可以使用1个标签并更改其某些部分的颜色?

如何在我的照片上制作表格单元?

谢谢。

5 个答案:

答案 0 :(得分:8)

你应该在两个标签和单元格中...并在UITableViewCell的子视图中添加这两个标签

将其写入cellForRowAtIndexPath方法。

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

    static NSString *CellIdentifier = @"Cell";  
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    for(UIView *eachView in [cell subviews])
        [eachView removeFromSuperview];

    //Initialize Label
    UILabel *lbl1 = [[UILabel alloc]initWithFrame:YOURFRAME];
    [lbl1 setFont:[UIFont fontWithName:@"FontName" size:12.0]];
    [lbl1 setTextColor:[UIColor grayColor]];
    lbl1.text = YOUR CELL TEXT;
    [cell addSubview:lbl1];
    [lbl1 release];

    UILabel *lbl2 = [[UILabel alloc]initWithFrame:YOURFRAME];
    [lbl2 setFont:[UIFont fontWithName:@"FontName" size:12.0]];
    [lbl2 setTextColor:[UIColor blackColor]];
    lbl2.text = YOUR CELL TEXT;
    [cel2 addSubview:lbl2];
    [lbl2 release];

    return cell;
}

<强>更新

除此之外,您还可以创建自定义单元格作为定义here

快乐编码..

答案 1 :(得分:5)

许多人使用将标签添加为单元格子视图的技术,并且可能会在重复使用单元格时遇到意外结果。 Apple已经提供了可以在各个方面进行自定义的模板。 在您的情况下,不使用自定义单元格而不添加标签,我会使用模板UITableViewCellStyleValue2,您可以使用现有标签和accessoryView,例如cell.textLabelcell.detailTextLabel和{{ 1}},请参阅此代码段或多或少模仿您的界面:

cell.accessoryView

希望这有帮助。

答案 2 :(得分:4)

唯一的方法是将新标签添加为不同颜色的子视图作为背景。

答案 3 :(得分:0)

使用自定义单元格并根据需要进行初始化,或者您可以使用UITableviewCell,并根据需要的格式添加多个UILabel。

例如......,

static NSString *MyIdentifier =@"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

if (cell == nil) 
{       
    cell = [[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier];     
}

UILabel *lblPhone = [[UILabel alloc] initwithFrame:CGRectMake(5, 5, 150, 30)];
lblPhone.text = @"Tel.";
[cell addSubView: lblPhone];

答案 4 :(得分:0)

无法更改UILabel部件的字体或颜色。这里最简单的方法是创建一个单元子类,并在接口构建器或代码中添加两个标签。 This post向您展示如何计算标签中文本的大小,以便您可以动态调整标签的大小,如果您希望两个标签的文本是“thouching”。