具有多个标签和自定义高度的UItableviewcell

时间:2011-06-23 11:45:10

标签: iphone uitableview

我在My Tableview单元格中添加了多个标签。我正在显示Facebook消息和发件人姓名和照片。对于某些帖子,可能是消息不可用或照片不可用..我检查空条件,如果没有值存在,我不是为该特定单元格创建标签..现在有些标签有大字符串,有些标签可能很小..我对单元格的高度感到困惑,我可以在示例dynamic height中获得1个标签的动态高度但是如何根据数字来管理高度标签的文字...我的代码就像

    if ([(Facebook * )[tableArray objectAtIndex:indexPath.row]sender]!= nil) {
    labelSender = [[UILabel alloc]initWithFrame:CGRectMake(image_view.frame.size.width+20, 20, 120, 20) ];



    labelSender.text = [NSString stringWithFormat:@"%@",[(Facebook * )[tableArray objectAtIndex:indexPath.row]sender]];

    [labelSender setLineBreakMode:UILineBreakModeWordWrap];

    [labelSender setNumberOfLines:0];

    labelSender.textColor = [UIColor colorWithRed:59/255.0 green:89/255.0 blue:153/255.0 alpha:1.0];

    labelSender.font = [UIFont fontWithName:@"Arial" size:15.0];

    [cell.contentView addSubview:labelSender];


    [labelSender release];

    }


if ([(Facebook * )[tableArray objectAtIndex:indexPath.row]post]!= nil) {


        NSLog(@"post is ==%@",[(Facebook * )[tableArray objectAtIndex:indexPath.row]post]);

        labelMessage = [[UILabel alloc]initWithFrame:CGRectMake(image_view.frame.size.width+20, labelSender.frame.size.height + 20, 200, 20)];

        labelMessage.text = [NSString stringWithFormat:@"%@",[(Facebook * )[tableArray objectAtIndex:indexPath.row]post]];

        [labelMessage setLineBreakMode:UILineBreakModeWordWrap];

        [labelMessage setNumberOfLines:0];

        labelMessage.backgroundColor = [UIColor yellowColor];

        labelMessage.font = [UIFont fontWithName:@"Arial" size:13.0];

        [cell.contentView addSubview:labelMessage];

        [labelMessage release]; 

    }

请帮助

2 个答案:

答案 0 :(得分:0)

我觉得在处理动态内容时,最好选择UITextView。

答案 1 :(得分:0)

您应该将显示的标签存储在作为单元格属性的NSMutableArray中。这样你只需使用:

即可迭代
for (UILabel *tmpLabel in yourLabelArray){
   // do: add height to sum
}

这将为每个标签保存if(labelExists)。

祝你好运!