表中的动态大小标签在ios中不刷新

表中的动态大小标签在ios中不刷新,ios,uitableview,uilabel,Ios,Uitableview,Uilabel,我的表格中的单元格有几个标签。我希望其中一个标签适合其大小,以便文本从标题的正下方开始(请记住,除非适合其容器,否则标签会垂直对齐文本) 问题是,在第一次加载表时,所有标签的文本都已成功填充,但直到下一次请求刷新时,标签大小才真正以图形方式应用。(如果我要求重新加载具有完全相同信息的数据,则标签的大小可以完美地工作) 这是我的一些cellForRowAtIndexPath代码: cell.body.text = user.message; [cell.body sizeToFit]; 到目前

我的表格中的单元格有几个标签。我希望其中一个标签适合其大小,以便文本从标题的正下方开始(请记住,除非适合其容器,否则标签会垂直对齐文本)

问题是,在第一次加载表时,所有标签的文本都已成功填充,但直到下一次请求刷新时,标签大小才真正以图形方式应用。(如果我要求重新加载具有完全相同信息的数据,则标签的大小可以完美地工作)

这是我的一些cellForRowAtIndexPath代码:

cell.body.text = user.message;
[cell.body sizeToFit];
到目前为止,我找到的唯一解决方案是双重调用
[table reloadData]
,但这是一个丑陋的解决方案。我有办法解决这个问题吗

编辑:前面的代码是一个摘要,我将按要求在此处显示整个代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    TwitterTweetCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TwitterTweetCell"];

    // Populate cell

    TweetModelData *tweet = [self.twitterModelData.tweets objectAtIndex:[indexPath item]];

    cell.tweetName.text = tweet.user;
    cell.tweetChannel.text = tweet.userName;

    cell.tweetBody.text = tweet.message;
    [cell.tweetBody sizeToFit];

    return cell;
}
关于单元格大小,一切正常。根据消息的大小,每个单元格都有不同的大小,这是以前预先计算的

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return ((TweetModelData *)[self.twitterModelData.tweets objectAtIndex:[indexPath item]]).tweetHeight + 30.0f;
}

我终于找到了。不知道原因,但似乎在我的故事板上禁用“使用自动布局”修复了它


我猜auto layout正在覆盖我正在应用的布局更改,因此在下次重新加载数据之前它们不会生效。

显示完整的
cellForRowAtIndexPath
code(表示标签创建和赋值)。@Erik full code Added您必须使用此方法设置单元格行的高度:-(CGFloat)tableView:(UITableView*)表视图行高度索引路径:(NSIndexPath*)的indexPathtableview@DhavalBhadania是的,我读过它的实现,单元大小正常。我添加了它,谢谢你的时间