iOS - 自动调整表格视图单元格

时间:2015-01-16 23:38:57

标签: ios tableview cell

我在自动调整表格视图单元格方面遇到了一些麻烦。我已经能够根据文本的大小调整单元格标签的大小,但是我无法相应地调整单元格高度。这是一些代码:

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     static NSString *CellIdentifier = @"CellIdentifier";

     _cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

     if (_cell == nil)
     {
         _cell = [[TableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
     }

     PFObject *object = [_postsArray objectAtIndex:indexPath.row];

     NSString *nameString = [object objectForKey:@"Name"];

     _cell.cellLabel.text = [NSString stringWithFormat:@"Posted by %@", nameString];
     _cell.cellPostLabel.text = [NSString stringWithFormat:@"   %@", [object objectForKey:@"PostedDream"]];

     [_cell.cellPostLabel sizeToFit];

     [tableView setAutoresizesSubviews:YES];

     NSLog(@"cell post label height: %f", _cell.cellPostLabel.frame.size.height);

     return _cell;
 }

需要注意的是,我正在使用一个名为TableViewCell *cell的自定义表格视图单元格UITableViewCell,并且单元格及其标签是通过IB添加的。 正在调整的标签是cellPostLabel,它可以根据文本的数量进行完美调整,但由于单元格不能调整,它会被切断。 我也尝试过调用[self.tableView setAutoresizesSubviews:YES];self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;中的viewDidAppear:但仍然没有。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

单元格高度由heightForRowAtIndexPath方法确定。

您可以在viewcontroller上实现该方法并返回您喜欢的高度。

如果您的单元格应具有不同的高度,则应实现该方法并为每个单元格返回不同的值。或者不仅仅返回静态值或设置tableview的属性rowHeight,在这种情况下,您不需要实现该方法。