鉴于ios 11上的UITableView中的垃圾内容大小如何获得具有可变高度单元格的tableview以自动调整到该内容?
答案:Resizing UITableView to fit content 腐烂了,不再适用于ios 11
答案 0 :(得分:4)
当UITableView
使用自动维度 - 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清除。 强>