如何在TableView中的一行中的ImageView上方和下方添加空间?

时间:2019-07-06 02:13:47

标签: alignment constraints xcode10

此表视图中的行高为54。ImageView的高度为44。我想在ImageView的上方和下方设置5(以一定的间距隔开图像,使它们彼此不接触)。基本上,将ImageView在行(或ContentView)中垂直居中。不管我尝试过什么,图像始终固定在该行的左上角(由于它是音乐应用程序,因此必须在手机上运行,​​因此我没有图像显示该结果)。我很尴尬地说,我已经花了数小时试图做到这一点。我将不胜感激。谢谢。

enter image description here

2 个答案:

答案 0 :(得分:1)

如果我是你,这就是我要设置约束的方式。首先,我将图像视图的宽度限制设置为44。[注意:我将行高设置为与您一样,为54。]然后,我将图像视图的宽高比限制设置为1:1(假设您想要方形图片)。然后,我将图像视图和标签放在水平堆栈视图中。如果将所有内容捆绑在一个堆栈视图中,我会发现您不必担心约束更少(堆栈视图将照顾图像视图和标签之间的间距,尽管您可以根据需要进行相应的调整)。然后,我将前导和尾随约束添加到堆栈视图。最后,将堆栈视图垂直放置在容器中。

希望这会有所帮助。祝你好运!

Image of simulator showing stack view

Image of storyboard showing constraints on stack view

答案 1 :(得分:1)

我是对的,还有另一个地方将图像逼到左上角。如下所示设置行的内容时,它在代码中。我很早以前就写了那部分,当时我对Swift的了解还很少(目标是确保图像按比例缩放。不过可能没有必要。我会在没有它的情况下测试代码。不过,感谢Zaya的帮助是时候帮忙了!

        let albumArtwork = rowItem.representativeItem?.artwork
        let tableImageSize = CGSize(width: 10, height: 10) // This doesn't matter, it gets resized below
        let cellImage: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 44, height: 44)) // The albumImageView is 44 by 44