如何在UITableView的单个单元格中插入多行数据?

时间:2011-05-25 08:55:19

标签: iphone objective-c uitableview

我是否可以知道如何在UITableView的单个单元格中插入多行数据, 就像,我希望单个单元格中的输出如下:

KPK

开发

INFOSYSTEMS

INDIA

7 个答案:

答案 0 :(得分:1)

            UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 80)];
            myLabel.text = @"KPK";
            myLabel.textAlignment = UITextAlignmentCenter;
            myLabel.textColor = [UIColor yellowColor];
           [cell addSubview:myLabel];

           UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(0, 201, 200, 80)];
            myLabel1.text = @"Developer";
            myLabel1.textAlignment = UITextAlignmentCenter;
            myLabel1.textColor = [UIColor yellowColor];
            [cell addSubview:myLabel1];

答案 1 :(得分:1)

在字符串中使用 \ n

numberOfLines 设置为4以允许任意数量的行。

label.numberOfLines = 4;

使用 sizeWithFont:更新标签框以匹配文字大小。如果不这样做,您的文本将垂直居中或切断。

UILabel *label; // set frame to largest size you want
...
CGSize labelSize = [label.text sizeWithFont:label.font
                      constrainedToSize:label.frame.size
                          lineBreakMode:label.lineBreakMode];
label.frame = CGRectMake(
label.origin.x, label.orgin.y, 
label.size.width, labelSize.height);
label.text=[NSString stringWithFormat:@"KPK\nDeveloper\nInfosystems\nIndia"];  

现在您只需在单元格中添加标签即可。

[cell addSubView:label];

答案 2 :(得分:0)

你可以在文本中放置\ n。不确定是否有效,你可以为多行记录制作自定义单元格。

答案 3 :(得分:0)

在tableview中设置tablerow height和Use label

答案 4 :(得分:0)

创建自定义单元格,在其中添加4个标签,以显示所有必需的信息。查看以下教程,了解如何制作自定义单元格。

http://adeem.me/blog/2009/05/30/iphone-sdk-tutorial-part-6-creating-custom-uitableviewcell-using-interface-builder-uitableview/

答案 5 :(得分:0)

如果您的tableview cell.you可以指定uilabel的行数,请使用uilabel并将其添加为子视图

   label.numberOfLines = 4;

答案 6 :(得分:0)

我认为最好的方法是创建自定义UITableViewCell实现,或以编程方式将UILabel添加到单元格的contentView。

即:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 200, 30)];
label.text = @"MyText";
label.textColor = [UIColor blackColor];
[cell.contentView addSubview:label];
[label release]; // Never forget this!

添加其他行时,应更新第一行定义以正确偏移新行。例如。第二个标签应该是这样的:

UILabel *label2 = [[UILabel alloc] initWithFrame:CGRectMake(5, 35, 200, 30)];

完成后,您应该在表的委托中实现tableView:heightForRowAtIndexPath:方法,因为您必须为新单元格定义正确的高度。在您的示例中,对于4个标签,您应该实现以下内容:

- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath)indexPath {
    if (is_one_of_my_modified_cells) {
        return 35*4 + 5;
    }

    return 44; // default height
}

试试并告诉我。