在UITableViewCell中以垂直顺序显示记录?

时间:2013-11-12 08:27:41

标签: ios iphone objective-c uitableview

我希望在UITableViewCell中以垂直顺序显示我的记录。

这是我的代码:

cell.textLabel.text=[NSString stringWithFormat:@"%d %@ %@",objProp.contid,objProp.contname,objProp.contno];

我想像这样显示我的记录。

1  

sanjeet

9876556789

2 个答案:

答案 0 :(得分:2)

我个人解决这个问题的方法是:

我会创建一个自定义的UITableViewCell子类。我会在UITableViewCell中有三个标签,垂直排列。

self.labelA     = [[UILabel alloc] init];
self.labelB     = [[UILabel alloc] init];
self.labelC     = [[UILabel alloc] init];
NSDictionary *viewsDictionary = @{@"labelA" : self.labelA,
                                  @"labelB" : self.labelB,
                                  @"labelC" : self.labelC};
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[labelA]-|"
                                                                         options:kNilOptions
                                                                         metrics:nil
                                                                           views:viewsDictionary]];
[self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-[labelA]-[labelB]-[labelC]-|"
                                                                         options:NSLayoutFormatAlignAllLeading | NSLayoutFormatAlignAllTrailing
                                                                         metrics:nil
                                                                           views:viewsDictionary]];

然后我会用适当的标签设置每个标签。

我相信你要做的是设置默认UITableViewCell的textLabel,以便引入新行。例如:

UITableViewCell *tableViewCell;
tableViewCell.textLabel.numberOfLines   = 3;
tableViewCell.textLabel.lineBreakMode   = kNilOptions;
tableViewCell.textLabel.text            = [[NSString alloc] initWithFormat:@"%@\n%@\n%@", variableA, variableB, variableC];

就像我说的那样,更好的方法是创建一个自定义的UITableViewCell子类。

答案 1 :(得分:1)

您需要创建自定义tableviewcell才能按垂直顺序显示。如果您正在使用故事板,请在tableview单元格内容视图中拖动3个标签,并为每个标签指定不同的标记,并在[cell viewWithTag:]

中使用cellForRowAtIndexPath:方法

示例:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];


    UILabel *id = (UILabel *)[cell viewWithTag:1];
    id.text = [NSString stringWithFormat=@"%d",objProp.contid];

    UILabel *name = (UILabel *)[cell viewWithTag:2];
    name.text = [NSString stringWithFormat=@"%@",objProp.contname];

    UILabel *contact = (UILabel *)[cell viewWithTag:3];
    contact.text = [NSString stringWithFormat=@"%@", objProp.contno];

    return cell;
}