2

鉴于 ios 11 上 UITableView 中的垃圾 contentSize 如何获得具有可变高度单元格的表格视图以自动调整为该内容?

此处的答案:调整 UITableView 大小以适应内容 已腐烂,不再适用于 ios 11

4

1 回答 1

4

看起来当UITableView使用 Automatic Dimensions -时,它会在您滚动时动态UITableViewAutomaticDimension计算。contentSize

所以解决方案是使用 KVO 捕捉这些变化:

var contentSizeObservation: NSKeyValueObservation?

override func viewDidLoad() {
    super.viewDidLoad()

    contentSizeObservation = tableView.observe(\.contentSize, options: [.new], changeHandler: { tableView, value in
        // Do the setup here, this will be called multiple times
    })
}

重要的

您需要将其定义contentSizeObservation为全局(作为类成员),否则changeHandler不会调用该块,因为该变量将被 ARC 清除。

于 2018-03-19T11:36:43.380 回答