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 会因估计的项目高度较大而中断