【问题标题】:Setting variable UITableViewCell height设置变量 UITableViewCell 高度
【发布时间】:2009-11-07 16:34:20
【问题描述】:

我正在使用一个自定义 UITableViewCell,它有一些标签。单元格中有一个标签,其中字符串长度是可变的,因此我无法在 heightForRowAtIndexPath 方法中为单元格设置恒定高度。我也不想将自定义单元格中的计算逻辑放入表委托中。

【问题讨论】:

    标签: iphone uitableview


    【解决方案1】:

    -heightForRowAtIndexPath: 是您可以设置它的地方。我知道把这个逻辑放在 tableview 委托中有点难看,但不能在单元格中完成。

    考虑一下,tableview 必须在实例化单元格之前知道单元格的高度,以便计算滚动条的长度(成比例)。这意味着您无法计算单元格本身的单元格大小,因为必须在单元格被实例化之前就知道单元格的大小。

    换句话说,您不能在单元格中设置行高,因为 tableview 需要知道如果用户不滚动到它们将永远不会实例化的单元格的高度。

    【讨论】:

      【解决方案2】:

      如何在你的单元类上定义一个类方法来进行计算?您可能仍然需要将大量信息从委托传递给单元类(例如模型对象或某些内容),并且您可能必须从单元的 layoutSubviews 或 drawRect: 中复制一些代码,但至少所有逻辑都存在于单元类中。

      在您的委托中,您可以将任何需要的逻辑分解为单元类的索引路径,并将其转换为它自己的方法,可从heightForRowAtIndexPath: 和cellForRowAtIndexPath: 调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-21
        • 2011-06-04
        • 1970-01-01
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 2017-01-20
        相关资源
        最近更新 更多