我正在将一个 UITableView
嵌入到另一个 UIScrollView
中。我只希望 UIScrollView
滚动,而不是 UITableView
,所以我想禁用 UITableView
中的滚动,以及展开 contentHeight
为 UITableView
一次容纳所有动态。
我该怎么做?
最佳答案
将 tableView 的滚动属性设置为 false。
第一种方法:
为 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() } }
在 Interface builder 中,将 tableView 的类更改为 MyOwnTableView(子类 UITableView)。
为表格 View 设置自动行高。
tableView.estimatedRowHeight = 60.0; tableView.rowHeight = UITableViewAutomaticDimension;
第二种方法: 1. 为 tableView 创建一个任意值的高度约束,并连接一个设置 tableView 高度的 IBOutlet。
重新加载数据后,将高度约束的常量设置为 tableView.contentSize.height。
self.tableViewHeight.constant = self.tableView.contentSize.height
关于ios - 使 UITableView 不可滚动并调整高度以容纳所有单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090104/