我的桌子上有几个标签的单元格。我希望这些标签之一适合其大小,以便文本从“标题”下方开始(请记住,除非您适合其容器,否则“标签”将垂直对齐文本)。
问题是,表第一次加载时,所有标签的文本都已成功填充,但是直到下一次要求刷新时,标签大小才真正以图形方式应用。(如果我要求提供具有完全相同信息的reloadData,则标签的大小可以正常使用)。
这是我的一些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;
}
我终于找到了。不知道原因,但似乎在我的情节提要上禁用了“使用自动布局”,从而修复了该问题。
我猜想自动布局会覆盖我正在应用的布局更改,因此在下次数据重新加载之前它们不会起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句