【问题标题】:Hiding a UIView & Updating Constraints隐藏 UIView 和更新约束
【发布时间】:2018-08-01 01:29:02
【问题描述】:

我有一个自定义表格视图单元格笔尖,它包含两个 textView、两个 imageView 和 4 个标签。约束是使用自动布局设置的,这就是笔尖的外观:

右侧的主图像视图从数据库中获取一个可选值。如果用户包含了图像,我希望它显示图像,但如果用户没有,我希望隐藏图像并且我希望调整 textView 的约束(左侧的自定义描述)和看起来像这样:

我确信这很容易做到,但我仍在学习,所以我要求的是指向正确的方向。根据存储的值切换约束的最佳方法是什么?

【问题讨论】:

    标签: ios swift firebase autolayout constraints


    【解决方案1】:

    您可以设置约束,以便正文文本和图像视图之间有一个水平间距常数,而图像视图与其父视图的边缘之间有另一个水平间距。

    从那里,您可以为图像视图创建宽度约束并将其IBOutletconstant 设置为0

    【讨论】:

    • 所以基本上,如果图像不存在,我会将图像视图的宽度设置为 0?
    • 哇,真是天才。谢谢你的想法
    【解决方案2】:

    我认为使用UIStackViews 最容易做到这一点。

    对于左侧的许多标签,将它们放在垂直堆栈视图中或只是常规UIView。然后将它们的父视图与图像一起放在水平堆栈视图中。水平堆栈视图应按比例填充。

    当您配置表格视图单元格时,请根据需要添加/删除图像视图。这是一些伪代码:

    if data[indexPath.row].image != nil
        if imageView.parent == nil 
            horizontalStackView.addArrangedSubview(imageView)
        imageView.image = data.image
    else if imageView.parent != nil
        imageView.removeFromSuperview()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多