【问题标题】:Auto height for label or textview within table view cell表格视图单元格中标签或文本视图的自动高度
【发布时间】:2015-10-04 22:35:07
【问题描述】:

我的 iPhone 应用程序有问题。

应用程序有一个带有自定义表格视图单元格的表格视图控制器。每个单元格都有一个标签(如果我需要使用文本视图等,请纠正我)。我从网络服务调用中动态获取文本,但我不知道文本会多长。

现在的问题是我想根据收到的文本调整表格视图单元格的高度。如何在表格视图单元格中增加 Label 或 TextView 的高度,以便它可以包含所有文本并实际上增加表格视图单元格的高度。

有谁知道如何处理这种设计问题?

谢谢

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    可以通过下面的函数获取字符串的高度

    -(float)getHeightByWidth:(NSString*)myString:(UIFont*)mySize:(int)myWidth {
    
        CGSize boundingSize = CGSizeMake(myWidth, CGFLOAT_MAX);
        CGSize requiredSize = [myString sizeWithFont:mySize constrainedToSize:boundingSize lineBreakMode:UILineBreakModeWordWrap];
    
        return requiredSize.height;
    
    }
    

    根据上面的函数,你可以设置标签的高度以及它要使用的单元格..

    【讨论】:

    • 如果在单元格中显示,请确保在文本框架中添加一些填充。
    【解决方案2】:

    答案取决于您显示的信息的大小和复杂性。

    对于少量文本,您可以使用NSString UIKit Additions 计算显示字符串的尺寸,然后在将单元格返回到表格视图之前调整单元格的标签或其他控件的大小。这将使您可以微调每个单元格的显示。

    对于大量文本,如果可能的话,我建议使用详细视图。在表格中显示少量文本,然后选择表格打开另一个包含全文的视图。我认为大多数用户很难在 tableview 中阅读大量文本。

    【讨论】:

    • 是的,我也在考虑这个设计逻辑。在我的情况下,文本不会超过 500 个字符。在这种情况下你怎么看?
    • 如果表格视图的大小占据了垂直屏幕区域的三分之一或更多,它看起来就不再像一张表格了,用户对如何操作它感到困惑。我认为您必须始终拥有至少三个可见单元格。另一种方法是在像照片库详细视图一样左右分页的详细视图中显示文本。这一切都取决于实际数据以及人们将如何使用它。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 2020-11-03
    相关资源
    最近更新 更多