UIImageView 大小的自定义单元格高度?

Posted

技术标签:

【中文标题】UIImageView 大小的自定义单元格高度?【英文标题】:custom cell height from UIImageView size? 【发布时间】:2015-06-18 06:30:11 【问题描述】:

我在自定义单元格中有一个 UIImageView。如果单元格中没有要显示的图像,则单元格高度应自动减小。(在这种情况下,ImageView 高度应为零)。如何在 xib 中为此指定约束?

【问题讨论】:

图像的高度是否不同,还是始终相同?您是否添加了从图像顶部到单元格顶部的约束,并且对于底部也是如此? 嗨,请看这个问题:***.com/questions/30896856/… 【参考方案1】:

您的UITableView 数据源应代表此图像的存在。 您应该使用以下委托方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
    if (self.dataSource[indexPath.rox].imageExists) 
        return 50.0; // Change to your value with image
    
    return 10.0; // Change to your value without image

【讨论】:

嗨 Asaf,请看这个问题:***.com/questions/30896856/… 你想让我看到什么?你的问题似乎很相似......?【参考方案2】:

你的 UITableViewDelegate 应该实现 tableView:heightForRowAtIndexPath:

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

    // add your condition here if image exit or not and set cell size dynamically
    return [indexPath row] * 20;

您可能希望使用NSString's sizeWithFont:constrainedToSize:lineBreakMode: 方法来计算行高,而不是仅仅在 indexPath 上执行一些愚蠢的数学运算。

这是dynamic size cell. 的很好的示例代码

【讨论】:

以上是关于UIImageView 大小的自定义单元格高度?的主要内容,如果未能解决你的问题,请参考以下文章

设置 UIImageView 的高度时 AutoLayout 失败

让自定义 TableViewCell 的 UIimageView 宽度为单元格宽度的 1/3,单元格高度 = 图像纵横比

故事板中的自定义单元格行高度设置没有响应

具有自动调整大小的单元格的自定义 UICollectionViewLayout 会因估计的项目高度较大而中断

如何调整自定义tableview单元格下的UIImageview

具有可变高度的自定义单元格