Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 隐藏UIView和更新约束_Ios_Swift_Firebase_Autolayout_Constraints - Fatal编程技术网

Ios 隐藏UIView和更新约束

Ios 隐藏UIView和更新约束,ios,swift,firebase,autolayout,constraints,Ios,Swift,Firebase,Autolayout,Constraints,我有一个自定义的表视图单元格nib,它包含两个textView、两个ImageView和4个标签。使用autolayout设置约束,这是nib的外观: 右侧的主图像视图接收数据库中的可选值。如果用户包含图像,我希望它显示图像,但是如果用户没有,我希望图像被隐藏,并且我希望调整文本视图自定义描述左侧的约束,如下所示: 我相信这是相当简单的,但我仍在学习,所以我要求的是指向正确的方向。根据存储的值切换约束的最佳方法是什么?您可以设置约束,使正文文本和图像视图之间有一个水平间距常量,图像视图与其超级

我有一个自定义的表视图单元格nib,它包含两个textView、两个ImageView和4个标签。使用autolayout设置约束,这是nib的外观:

右侧的主图像视图接收数据库中的可选值。如果用户包含图像,我希望它显示图像,但是如果用户没有,我希望图像被隐藏,并且我希望调整文本视图自定义描述左侧的约束,如下所示:


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

您可以设置约束,使正文文本和图像视图之间有一个水平间距常量,图像视图与其超级视图的边缘之间有一个水平间距常量


从那里,您可以为图像视图创建一个宽度约束,并将其IBOutlet的常数设置为0。

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

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

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

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

因此,基本上,如果图像不在那里,我会将图像视图的宽度设置为0?哇,这太棒了。谢谢你的主意