以编程方式添加内容时如何提高TableCell高度?

时间:2016-05-26 10:10:23

标签: ios objective-c xcode uitableview autolayout

我正在开发一款应用。我有一些来自服务器的数据。

现在我对行的数据计数一无所知。我只知道菲尔兹的名字。

我想在UITableViewCell

中显示这些数据

我有自定义TableCell。我在里面拿了ContentView。 我设置了以下约束:

     - Leading
     - Trailing 
     - Top
     - Bottom

enter image description here 在我的ViewController's DidLoad方法中,我有这个代码:

    UINib *nib = [UINib nibWithNibName:cellName bundle:nil];
   [[self mTableView] registerNib:nib forCellReuseIdentifier:cellName];


     self.mTableView.rowHeight = UITableViewAutomaticDimension;
    self.mTableView.estimatedRowHeight = 100.0;

我正在创建UILabel像这样

      - (void)awakeFromNib {
[super awakeFromNib];


CGFloat ypos = 0;

for(int i=0;i<6;i++)
{
    UILabel *lbl  = [[UILabel alloc]init];
    lbl.backgroundColor= [UIColor redColor];
    lbl.frame = CGRectMake(0,ypos,30,10);

    [self addSubview:lbl];
    ypos += 16;
}

[self setNeedsLayout];
[self layoutIfNeeded];

// Initialization code
}

这是我的CustomCell.But我的TableCell Hegiht没有增加。

请有人建议我,我错过了什么?

2 个答案:

答案 0 :(得分:0)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSDictionary *dict1 = (NSDictionary*)[array objectAtIndex:indexPath.row];
    NSString *cellText = [dict1 valueForKey:@"test"];
    UIFont *cellFont = [UIFont fontWithName:FONT_NAME_GOTHAM_4 size:11.0];
    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
    CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

    return labelSize.height + 80;
}

答案 1 :(得分:-1)

到目前为止,你做得对。但是不要忘记使用tableView的委托/数据源 - cellForRowHeight

另外,正如Lion所提到的,您需要为标签添加约束。如果以编程方式执行标签,则还要以编程方式执行自动布局。