【问题标题】:How to show an image view only if the model object contains image url仅当模型对象包含图像 url 时如何显示图像视图
【发布时间】:2019-10-23 03:41:47
【问题描述】:

所以我正在创建各种 facebook 提要,我正在获取文本、图像/视频的 url 和用户名等。我创建的单元格具有图像视图、文本视图和标签。我根据文本视图内容大小调整单元格的大小。

现在让我们说用户只有发布文本,没有图像。我希望小区大小,以便小区中没有图像视图。只有文本视图,仅此而已。

这可以仅使用一个单元/模型/适配器来完成,还是我需要自定义单元并根据模型显示它们。

如何理解如何做到这一点。

【问题讨论】:

    标签: ios swift facebook cell collectionview


    【解决方案1】:

    您只需要一个单元,并且有不同的方法可以实现这一点。一个简单的 oen 是在单元格内使用 UIStackView。

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

    此外,无论是否使用 UIStackView,请记住在 tableView 上指定单元格的大小将是动态的:

    self.tableView.rowHeight = UITableViewAutomaticDimension
    

    【讨论】:

    • 不错的主意。我可能会尝试使用 UIStackView。感谢您的建议!
    【解决方案2】:

    创建一个图像高度约束的出口,然后检查您的 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
    }
    

    【讨论】:

    • 让我也试试这个。感谢您的想法!
    猜你喜欢
    • 2012-07-06
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多