【问题标题】:How to set dynamic height of cell based on content如何根据内容设置单元格的动态高度
【发布时间】:2013-06-18 21:44:56
【问题描述】:

我有一个需要在表格单元格中显示用户 cmets 的应用程序。如何像 Instagram 一样根据单元格的内容设置单元格的动态高度?

基本上,我在不同的单元格中有不同长度的文本和 cmets。谁能告诉我如何实现动态高度方法(如 instagram)?

【问题讨论】:

    标签: ios objective-c uitableview


    【解决方案1】:

    检查UITableViewDelegate documentation

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

    请记住,您不能通过此方法引用单元格,因此您需要单独计算内容的高度并使用它来生成高度。

    【讨论】:

    • 您好,感谢您的建议。我知道这种方法,不幸的是我需要更多关于如何计算这个动态高度的建议?
    • 这取决于你将如何绘制你的单元格。例如,如果您有一个来自 UIImages 数组的 UIImageView 和一个 UILabel ,它将显示来自 NSStrings 数组的 NSString 您将返回 [imagesArray objectAtIndex:indexPath.row].size.height + spaceBetweenImageAndLabel + [[stringsArray objectAtIndex:indexPath.row] sizeWithFont:fontYouWillUseInCell constrainedToSize:sizeThatIsWidthOfLabelXmaxHeight lineBreakMode:UILineBreakModeYouWantToUse].height
    【解决方案2】:

    将我的动态标签类别here 与我的动态表格单元格高度here 结合起来。完美结合!

    【讨论】:

    • 感谢您的建议!我检查了您的动态标签类别链接,但找不到有关标签的信息。你能帮我吗?至于动态表格单元格,根据我最初的理解,文章指出选择时将单元格高度乘以 2 对吗?不知道我是否错过了什么,但是有什么关于根据当前要显示在单元格中的数据集设置高度的吗?
    • 看看 UILabel+DynamicHeight... 如果你调用方法 + (double)getSizeWithText:(NSString *)text andWidth:(double)width forFont:(UIFont *)font,它返回单元格的高度。然后在动态单元格高度代码中,当你返回单元格的高度时,只需创建一个版本的单元格,设置内容并获取返回的大小。
    【解决方案3】:

    你应该看看three20 library source code,它提供了你想做的复杂单元格。即使您不打算使用它,它也可能会为您提供有关如何执行此操作的答案:

    【讨论】:

    • 很遗憾,这个库不再受支持。似乎现在可以工作(iOS6),但未来无话可说。祝你好运。
    【解决方案4】:

    你应该参考这个问题。答案就在这里。

    Dynamic UITableView height in UIPopoverController (contentSizeForViewInPopover)?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 1970-01-01
      相关资源
      最近更新 更多