动态调整UITableView的大小,该大小将显示为不可滚动的内容列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态调整UITableView的大小,该大小将显示为不可滚动的内容列表相关的知识,希望对你有一定的参考价值。
我正在使用Swift 3.0中的一个项目,它在UIScrollView中有一个UITableView,它已经设置了它的约束。
要求是显示从这个UITableView中的数组返回的歌曲列表,但是这个UITableView的大小应该根据数组的大小动态排列,所以我不需要滚动UITableView,因为我可以看到所有UITableView中的歌曲(这个UITableView在我的scrollView中,所以我可以使用我的scrollView在列表中向上或向下移动)。
我怎么做到这一点?
答案
您可以根据内容更改tableview的高度。
var frame = tableView.frame
frame.size.height = tableView.contentSize.height
tableView.frame = frame
如果您正在为tableview高度使用autolayout create outlet并将tableview内容大小分配给其常量。
tableviewHeightConstraint.constant = tableview.contentSize.height
另一答案
1.为tableView创建一个子类并覆盖intrinsicContentSize。
class MyOwnTableView: UITableView {
override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return self.contentSize
}
override var contentSize: CGSize {
didSet{
self.invalidateIntrinsicContentSize()
}
}
override func reloadData() {
super.reloadData()
self.invalidateIntrinsicContentSize()
}
}
2.在Interface构建器中,将tableView的类更改为MyOwnTableView(UITableView的子类)。
- 为表视图设置自动行高。
tableView.estimatedRowHeight = 60.0 tableView.rowHeight = UITableViewAutomaticDimension
以上是关于动态调整UITableView的大小,该大小将显示为不可滚动的内容列表的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 UITableView 滚动动态调整 UITableViewCell 的大小?
自动布局动态大小 uitableview 单元格的最佳方法是啥