动态UITableViewCell高度导致布局问题

时间:2013-12-13 12:25:59

标签: ios uitableview

我设置了自定义UITableViewCell,以便在我的应用中使用自定义单元格显示用户时间轴。

正如您所料,单元格高度应根据推文的长度进行调整。在我的自定义Tweet类中,我添加了一个名为cellHeight的属性,并在加载数据时将其设置为:

/******************************************************/
// Cell Height
/******************************************************/

 float cellHeight = ceilf([self textViewHeightForText:tweetFinalText andWidth:222]);

 float topPadding = 10.0f;
 float bottomPadding = 10.0f;
 float labelHeight = 21.0f;

 float final_height = cellHeight + topPadding + labelHeight + bottomPadding;

 aTweet.cellHeight = final_height;

 [temp insertObject:aTweet atIndex:i]; 

这是我的heightForRowAtIndexPath方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    Tweet *aTweet = [self.userTweetsArray objectAtIndex:indexPath.row];

    return aTweet.cellHeight;

}

这一切都非常简单直接。它实际上适用于调整单元格的大小,但现在我存储用户名的UILabel会上移或下移。以下是一些图片来说明这一点:

First Example

Second Example

正如您所看到的,只有用户名标签被抛弃。如果我将heightForRow更改为100,那么一切都会恢复正常。值得注意的是,推文文本始终是它所需要的。

我没有使用自动布局,我没有以编程方式设置标签位置/框架(它在故事板原型单元格中完成)。当我在cellForRowAtIndexPath中以编程方式设置代码时,没有任何反应。

如果我启用自动布局,单元格看起来很棒,但我的应用程序的其余部分变得非常混乱,因为它完全是使用自动布局构建的。我不希望为这个项目使用自动布局

知道为什么会出现这种行为吗?任何见解将不胜感激。如果有任何我可以发布的代码可能有帮助,请告诉我们,谢谢!

0 个答案:

没有答案