如何设置任何UITableViewCell的背景图像?

时间:2018-07-13 06:48:12

标签: ios swift uitableview storyboard constraints

我正在尝试设置我的视图容器的背景图像,但是问题是我的UITableView Cell具有动态高度,我想根据其内容而不是根据图像来控制高度。 我应该怎么做?这就是我在情节提要中使用的。

These are my constraints

Hierarchy of my Views

现在,问题是我没有对主图像施加任何高度或宽度限制,因为我说单元格应该尊重其内容,因此图像会根据其自身大小进行扩展或缩小。

我已经尝试过的东西

  1. 试图以各种可能的方式优先考虑图像约束。
  2. 尝试了应用background.color模式的方法(这将重复图像多次。)

我实际上想做什么?

enter image description here

这些单元格具有图像作为背景和一些内容。 请注意,内容可以更改,单元是动态的。

我面临的问题是 图像设置不佳,有时出现在整个单元格的一半,有时甚至重叠到下一个单元格。图像会扩展细胞,因此细胞会根据图像大小而不是内容来调整高度。

谢谢。

2 个答案:

答案 0 :(得分:0)

您好,使用下面的代码可以找到标签的:-

let currentSource = "your label text"
let size = CGSize(width: screenWidth - 24, height: 0)
let attributes = [NSAttributedStringKey.font :  UIFont.systemFont(ofSize: 17.0)]
let estimatedFrame = NSString(string:    currentSource.text).boundingRect(with: size, options: .usesLineFragmentOrigin, attributes: attributes, context: nil)

使用此代码,在找到标签的每个高度之后,还获得了标签的高度,并添加了标签之间的距离,然后返回heightForRowAt委托方法(例如,return EstimateFrame.height +“每个标签的距离(40)”)

谢谢

答案 1 :(得分:-1)

请查看此GitHub存储库(存储库README中的屏幕截图):

https://github.com/tony42/TestTableCellBackground

这看起来像您所需要的吗?

我不确定您做错了什么-因此,我从一个空项目开始。对我来说,诀窍是将图像的“抗压缩性”设置为“低”(250)。这是一个很好的练习:-)