使用最小高度单元格自动调整表格视图

jli*_*aum 4 uitableview ios

我有一个针对iOS7/8的项目.在iOS7上我做手动单元高度计算,在iOS8上我让系统进行数学运算.

单元格主要包含两个垂直堆叠的标签,标题和描述,位于两个装饰视图的左侧,不受我的问题的影响.

我试图让所有细胞以60点的高度出现,当它们被点击时,它们不会被截断为全尺寸.这适用于大多数情况.有一个边缘情况,标题和描述实际上不会截断.在这种情况下,在iOS8上点击单元格会缩小它最微小,令人讨厌的一点点.

我想知道是否有办法为表格单元设置最小高度,除了在iOS 8中设置自动调整表的估计行高?

我希望这是有道理的,如果我需要更好地解释,请告诉我.如何为iOS 8自动调整单元格设置最小高度,我们对此表示赞赏.

正常情况 - 截断标题和描述/扩展点击

截断标题/说明 扩展的标题/描述

边缘情况 - 没有任何内容被截断/展开实际上缩小了单元格

什么都没有截断 没有任何截断扩展

我在iOS 8上heightForRowAtIndexPath返回UITableViewAutomaticDimension并在iOS7上使用测量单元计算它.我还将该rowHeight物业硬编码到60.0f我预期的最小高度,与IB中的布局相匹配.

当点击单元格时,我调用一个函数来将单元格设置为展开.我用这些变化制作动画[tableView beginUpdates].

- (void) setIsExpanded:(BOOL)isExpanded {
    _isExpanded = isExpanded;

    if (_isExpanded) {
        [_descriptionText setLineBreakMode:NSLineBreakByWordWrapping];
        [_descriptionText setNumberOfLines:0];

        [_title setLineBreakMode:NSLineBreakByWordWrapping];
        [_title setNumberOfLines:0];
    } else {
        [_descriptionText setLineBreakMode:NSLineBreakByTruncatingTail];
        [_descriptionText setNumberOfLines:1];

        [_title setLineBreakMode:NSLineBreakByTruncatingTail];
        [_title setNumberOfLines:1];
    }

    [self layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*Cat 22

根据我的评论:

我看不出图像有什么不同.我也不确定如果没有你的代码,我会知道如何进行测试.

但是,最重要的一点是在自定义UITableViewCell视图中创建一个约束height >= 60.0

很高兴这有帮助.