Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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 Swift UITableView可以';不能正确计算内容高度_Ios_Swift_Uitableview - Fatal编程技术网

Ios Swift UITableView可以';不能正确计算内容高度

Ios Swift UITableView可以';不能正确计算内容高度,ios,swift,uitableview,Ios,Swift,Uitableview,我在UITableView中遇到了一个奇怪的问题,无法正确计算其内容的高度 我有一个自定义UITableView类,它嵌入到另一个自定义UITableView中,我希望它自动调整其高度以适应内容,因此我已经: override var contentSize: CGSize { didSet { self.invalidateIntrinsicContentSize() } } override var intrinsicContentSize: CGSize

我在UITableView中遇到了一个奇怪的问题,无法正确计算其内容的高度

我有一个自定义UITableView类,它嵌入到另一个自定义UITableView中,我希望它自动调整其高度以适应内容,因此我已经:

override var contentSize: CGSize {
    didSet {
        self.invalidateIntrinsicContentSize()
    }
}

override var intrinsicContentSize: CGSize {
    self.layoutIfNeeded()
    return self.contentSize
}
现在当我使用:

self.estimatedRowHeight = UITableView.automaticDimension // non-zero value like 40 isn't working either
self.rowHeight = UITableView.automaticDimension
输出是非全高的帧,当我在这个TableView中打开“滚动启用”时,它可以滚动全部内容(不希望这样):

现在当我改变

self.estimatedRowHeight = UITableView.automaticDimension
致:

输出正是我想要的,除了内容文本被剪切。。。

这是我的手机:

控制台在任何情况下都不会显示任何autolayout错误

你知道发生了什么事吗?我花了好几天的时间试图让这些评论发挥作用,这是我最不需要的。 如果你需要更多的信息,请告诉我

编辑: 如果我将estimatedRowHeight更改为一个较大的数字,例如500,我将在单元格下获得大量的空白空间:
因此,TableView似乎无法固定内容的单元格高度。也许这会对某人有所帮助。

也许是关于CellView中的文本字段。你把它的布局设置成包裹了吗


此外,我会尝试在尺寸检查器中将其内在尺寸值设置为“占位符”。

UITableView.automaticDimension只有在自定义单元格中设置了顶部和底部约束时才能正常工作。例如,长文本的底部约束应该设置为1小时前标签,1小时前标签的底部约束应该设置为单元格的底部。我已经设置好了。即使有了基本的标签,它也会变得一团糟。这里是输出:第一张照片是
estimatedRowHeight=0
,第二张是
self.estimatedRowHeight=100
将“占位符”的固有大小值设置为“占位符”,我尝试了“换行”和“截断尾部”。这是UILabel,而不是文本字段。这是我能得到的最基本单元格的输出,仅文本:imgur.com/a/qt6MW56第一张照片是
estimatedRowHeight=0
,第二张是
self.estimatedRowHeight=100
,所以我有了一些突破。。。我在里面设置了一个断点:
override var intrinsicContentSize:CGSize{self.layoutifneedd()return self.contentSize}
第一个值是0(在显示数据之前猜测),之后是1000(根据estimatedRowHeight猜测,10个单元格x 100),最后是1973.333297729492(这是所有单元格的确切高度,我已经证实了这一点)但看起来最终值不适用于tableView框架。你有什么想法吗?
self.estimatedRowHeight = 0