Swift 快速、自动调整自定义表格视图单元格的大小

Swift 快速、自动调整自定义表格视图单元格的大小,swift,xcode,uitableview,swift3,tableviewcell,Swift,Xcode,Uitableview,Swift3,Tableviewcell,在我的应用程序中,我有一个表格视图,每个单元格中都有一个图像、标签和文本视图。我希望能够根据文本视图中的内容量自动调整单元格大小。(文本视图是最下面的文本。) 到目前为止,我已经添加了正确的约束条件;文本视图的前导、尾随、顶部和底部,并已禁用滚动和编辑 在我的tableViewController.swift文件中,我编写了以下代码: 覆盖函数视图将出现(u动画:Bool){ tableView.estimatedRowHeight=100 tableView.rowHeight=UITable

在我的应用程序中,我有一个表格视图,每个单元格中都有一个图像、标签和文本视图。我希望能够根据文本视图中的内容量自动调整单元格大小。(文本视图是最下面的文本。)

到目前为止,我已经添加了正确的约束条件;文本视图的前导、尾随、顶部和底部,并已禁用滚动和编辑

在我的tableViewController.swift文件中,我编写了以下代码:

覆盖函数视图将出现(u动画:Bool){
tableView.estimatedRowHeight=100
tableView.rowHeight=UITableViewAutomaticDimension
}

但是,当我在文本视图中添加更多文本时,它就被切断了

也许这与卡片的外观有关,我在每个单元格中都有一个UIView作为卡片

我真的不知道我做错了什么

下面是我的应用程序的图片,如果有人能帮忙,我们将不胜感激


确保内容模式设置为
缩放,以填充
UITextView的

确保
UITextView
和卡
UIView

尝试将估计高度添加到
viewDidLoad

override func viewDidLoad() {
    tableView.estimatedRowHeight = 100
    tableView.rowHeight = UITableViewAutomaticDimension
}
可能是由于
UITextView
上方的
UIView
导致自动高度无法工作。尝试调用
cellForRowAt
中的
UIView
sizeToFit
layoutifneed
方法:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "Identifier", for: indexPath) as! CustomTableViewCell
    cell.vwCard.sizeToFit()
    cell.vwCard.layoutIfNeeded()
    return cell
}
您还可以尝试
sizeToFit
layoutifneed
以及
UITextView


希望这能奏效……。

检查您的约束条件是否与此类似(基于您的图像):

imageView:设置为容器的顶部和前导,具有固定的高度和宽度值

标签:您可以将其设置为图像的顶部和水平空间,以及固定的高度和宽度

文本视图:指向图像,顶部空间指向标签,尾部和底部指向容器

继续使用

tableView.estimatedRowHeight = 100
        tableView.rowHeight = UITableViewAutomaticDimension

在视图中将出现()

将文本视图的底部设置为白色UIView的底部,并确保白色UIView具有左、右、上和下约束:)

swift 4.2的更新

使用:

而不是:

UITableViewAutomaticDimension

您是否在
UITextView
的界面生成器中将内容模式设置为
Scale to Fill
,我发现如果内部有多个文本视图,则很难使用此自动调整大小,而且我总是自己计算高度。我很想知道您是如何在单元格和圆形之间创建这些空间的。我创建了一个每个单元格中的UIView。然后将每个单元格的内容放在该视图中。视图每侧有8个像素的空间。为了使角变圆,我使用了myView.cornerRadius=intI。我尝试了上述所有方法,甚至尝试删除背景卡视图,但仍然不起作用。还有什么想法吗?非常抱歉@abadi176您的应用程序的部署目标是什么?哪个iOS版本运行您的模拟器?部署是10.0,sim是10.3.1如果您为
heightForRowAt
设置
委托会发生什么情况:
覆盖func tableView(\utableview:UITableView,heightForRowAt indexath:indexPath)->CGFloat{return 100;}
UITableViewAutomaticDimension