我有一个自定义的表格视图单元格笔尖,其中包含两个textView,两个imageViews和4个标签。约束是使用自动布局设置的,这是笔尖的外观:
右侧的主图像视图从数据库中获取一个可选值。如果用户包括了图像,则希望它显示图像,但是如果用户没有,则希望图像被隐藏,并且希望调整textView的约束(左侧的自定义说明),并看起来像这样:
我敢肯定这很简单,但是我仍在学习,因此我所要求的是指向正确的方向。基于存储的值切换约束的最佳方法是什么?
答案 0 :(得分:3)
您可以设置约束,以便在正文文本和图像视图之间有一个水平间距常量,在图像视图与它的超视图边缘之间有一个水平间距。
从那里,您可以为图像视图创建宽度约束,并将其constant
的{{1}}设置为IBOutlet
。
答案 1 :(得分:1)
我认为使用UIStackView
s最容易做到这一点。
对于左侧的许多标签,请将其置于垂直堆栈视图中,或仅放置在常规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()