swift 使用“自动布局”将UITableView的高度设置为其内容的高度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 使用“自动布局”将UITableView的高度设置为其内容的高度相关的知识,希望对你有一定的参考价值。
class IntrinsicTableView: UITableView {
override var contentSize:CGSize {
didSet {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return CGSize(width: UIViewNoIntrinsicMetric, height: contentSize.height)
}
}
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var tableHeightConstraint: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.new, context: nil)
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
tableView.layer.removeAllAnimations()
tableHeightConstraint.constant = tableView.contentSize.height
UIView.animate(withDuration: 0.5) {
self.updateConstraints()
self.layoutIfNeeded()
}
}
以上是关于swift 使用“自动布局”将UITableView的高度设置为其内容的高度的主要内容,如果未能解决你的问题,请参考以下文章
ios - 如何使用ios swift中的自动布局以编程方式将两个标签并排放置在中心位置?
如何在 Swift 中使用带有滚动视图的自动布局?
Swift 程序化自动布局约束的问题
我的带有自动布局约束的 Swift 4 UIScrollView 没有滚动
Swift - 使用自动布局时获取视图框架
使用 Swift 自动布局动画 UIButton