单元格(UITableView)可以实时更改其高度吗?

时间:2016-02-24 09:41:02

标签: ios uitableview ios-autolayout

我有一个带标签的单元格,有时标签文本会发生变化,单元格应该稍微扩展一下。我正在使用自动布局和可变高度单元格(你知道,UITableViewAutomaticDimension和estimatedRowHeight)。它似乎不起作用,除非在修改标签后我调用reloadData或重新加载该特定单元格。 这是正常的吗?有没有办法自动执行此操作或不必使用视图控制器重新加载现在应该有另一个高度的单元格?感谢。

3 个答案:

答案 0 :(得分:1)

我的一个应用程序中遇到了类似的问题,我做的是 添加2个约束,让d为标签的默认高度 1.标签的高度> = d,优先级= 750 2. height = d,priority = 1000 和uitableview单元属性到UITableViewAutomaticDimension 这对我有用。

答案 1 :(得分:0)

try this one 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([[[arrFeed objectAtIndex:indexPath.section] objectForKey:@"post_keywords"] isEqualToString:@""])
    {
        int heigthHeading = [self getHeightForText:[[arrFeed objectAtIndex:indexPath.section] objectForKey:@"post_heading"] withFont:[UIFont systemFontOfSize:17.0] andWidth:245.0];


        return 25+heigthHeading;
    }
    else
    {

         int heigthHeading = [self getHeightForText:[[arrFeed objectAtIndex:indexPath.section] objectForKey:@"post_heading"] withFont:[UIFont systemFontOfSize:17.0] andWidth:245.0];


        return 25+heigthHeading;

    }
}

答案 2 :(得分:0)

使单元格高度动态化(您也可以像这样在同一单元格上添加多个标签并且您的单元格增加高度取决于标签文本)

为标签添加四个约束(上,下,领先,追踪)

enter image description here

设置第0行和换行模式自动换行

enter image description here

添加此两个委托方法

-(CGFloat)tableView:(UITableView )tableView estimatedHeightForRowAtIndexPath:(NSIndexPath )indexPath 
{
    return 44;
} 

-(CGFloat)tableView:(UITableView )tableView heightForRowAtIndexPath:(NSIndexPath )indexPath 
{
   return UITableViewAutomaticDimension;
}