noo*_*oob 3 uiscrollview tableview autolayout nslayoutconstraint swift
我在UITableView里面UIScrollView。我拿来从服务器的一些数据后,我重新加载tableview中和之后,我得到的tableview内容高度的tableView的高度更改为内容高度和调用layoutIfNeed()上scrollView。
但是问题在于,tableView重装之后的访问时contentHeight不正确,但是如果一秒后访问,它将给出正确的高度。有没有什么方法可以得到正确的高度而无需等待几秒钟。
self.tableView.reloadData()
self.tableViewHeight.constant = self.tableView.contentSize.height
self.containerSV.layoutIfNeeded()
Run Code Online (Sandbox Code Playgroud)
reload正确后,contentSize只有在所有单元都加载后才可用。您可以Key Value Observing用来观察内容大小的变化。
// register observer
tableView.addObserver(self, forKeyPath: "contentSize", options: [.new, .old, .prior], context: nil)
@objc override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == "contentSize" {
// content size changed
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
669 次 |
| 最近记录: |