我在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];
}
请帮助
答案 0 :(得分:0)
我觉得在处理动态内容时,最好选择UITextView。
答案 1 :(得分:0)
您应该将显示的标签存储在作为单元格属性的NSMutableArray
中。这样你只需使用:
for (UILabel *tmpLabel in yourLabelArray){
// do: add height to sum
}
这将为每个标签保存if(labelExists)。
祝你好运!