如何仅在模型对象包含图像URL时显示图像视图

时间:2019-06-07 15:46:50

标签: ios swift facebook cell collectionview

因此,我正在创建各种Facebook feed,并且正在获取文本,图像/视频的URL和用户名等。我创建的单元格具有图像视图,文本视图和标签。我正在根据文本视图内容的大小调整单元格的大小。

现在,可以说用户仅发布了文本,并且没有图像。我希望调整单元格的大小,以便在单元格中没有图像视图。只有文本视图,就是这样。

可以仅使用一个单元格/模型/适配器完成此操作,还是需要自定义单元格并根据模型显示它们?

对于如何完成此操作会有所了解。

2 个答案:

答案 0 :(得分:0)

您只需要一个单元,就有多种方法可以实现这一目标。一个简单的方法是在单元内部使用UIStackView。

当UIStackView的一个元素被隐藏时,它会调整其大小。如果将约束从堆栈视图放置到单元格,则较小/较大的单元格取决于您是否显示图像。您只需要约束即可。

此外,无论是否使用UIStackView,都要记住在tableView上指定通过执行以下操作来动态改变单元格的大小:

self.tableView.rowHeight = UITableViewAutomaticDimension

答案 1 :(得分:0)

创建一个图像高度限制的出口,然后检查您的URL是否为空白或无效,然后将高度限制设为常数0,否则将其设置为适当的高度。

并确保您同时实现了这两种方法:

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100; // Put estimated height
}

另一个是,

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}