如何使用Xib制作UItableView的动态可扩展单元格,根据内容的高度

时间:2014-09-29 12:51:52

标签: ios objective-c uitableview

cell without expand

我想制作这种单元格,根据地址长度低于时间" 5:30"包含可变高度,我想用xib制作这种单元格。

第二件事:当用户点击单元格区域时,单元格将被展开,所有其他字段将变为可见。 我想通过使用xib来实现这一切

1 个答案:

答案 0 :(得分:0)

您好,您可以通过设置UITableView Cell的动态高度来实现,

在Tableview单元格中的

heightForRowAtIndexPath事件使用以下代码按文本返回自定义高度,

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *text;
   text = @"You can pass your text here";

    CGSize constraint = CGSizeMake(300, 20000.0f);

    CGSize size = [text sizeWithFont:[UIFont fontWithName:@"Helvetica neue" size:13.0] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    CGFloat height = size.height;//MAX(size.height, 44.0f);

    return height;
}

并在索引路径中的行的单元格中设置要显示地址的标签高度

  NSString *text = @"your text of address goes here";
  CGSize constraint = CGSizeMake(cell.lblAddress.frame.size.width, 20000.0f);
    CGSize size = [text sizeWithFont:cell.lblAddress.font constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
    CGFloat height = size.height;
    CViewSetY(cell.lblAddress, 0);
    CViewSetHeight(cell.lblAddress, height);
    [cell.lblAddress setNumberOfLines:0];