我设置了自定义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会上移或下移。以下是一些图片来说明这一点:
正如您所看到的,只有用户名标签被抛弃。如果我将heightForRow更改为100,那么一切都会恢复正常。值得注意的是,推文文本始终是它所需要的。
我没有使用自动布局,我没有以编程方式设置标签位置/框架(它在故事板原型单元格中完成)。当我在cellForRowAtIndexPath中以编程方式设置代码时,没有任何反应。
如果我启用自动布局,单元格看起来很棒,但我的应用程序的其余部分变得非常混乱,因为它完全是使用自动布局构建的。我不希望为这个项目使用自动布局
知道为什么会出现这种行为吗?任何见解将不胜感激。如果有任何我可以发布的代码可能有帮助,请告诉我们,谢谢!