我正在嵌入UITableView另一个内部UIScrollView.我只想要UIScrollView滚动,而不是UITableView,所以我想禁用滚动UITableView,以及扩展contentHeight为UITableView一次容纳所有动态.
我该怎么做呢?
Lea*_*ner 13
将tableView滚动属性设置为false。
第一种方法:
为tableView创建一个子类,并覆盖internalContentSize。
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()
}
}
Run Code Online (Sandbox Code Playgroud)在“界面”构建器中,将tableView的类更改为MyOwnTableView(子类UITableView)。
设置表格视图的自动行高。
tableView.estimatedRowHeight = 60.0;
tableView.rowHeight = UITableViewAutomaticDimension;
Run Code Online (Sandbox Code Playgroud)第二种方法: 1.为tableView创建一个具有任何值的高度约束,并连接设置tableView高度的IBOutlet。
重新加载数据后,将高度约束的常量设置为tableView.contentSize.height。
self.tableViewHeight.constant = self.tableView.contentSize.height
Run Code Online (Sandbox Code Playgroud)Huy*_* Le 12
将tableView大小设置为与contentSize相等.
override func viewDidLayoutSubviews() {
tableView.frame.size = tableView.contentSize
}
Run Code Online (Sandbox Code Playgroud)
小智 11
您需要将UITableView滚动设置为false,
tableview.scrollEnabled = false;
tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.y, tableview.frame.size.width, tableview.frame.size.height+(resultArray.count*HEIGHT_OF_CELL));
Run Code Online (Sandbox Code Playgroud)
然后你就可以添加UITableView上UIScrollView通过设置它的内容大小UITableView的高度.
基本上,tableview的内容大小就是您所需要的。
将tableview滚动设置为,false因为我们不想拖累行为。
获取tableview的高度约束的参考。
组 tableViewHeightConstraint.constant = tableView.contentSize.height
确保tableview的顶部,底部,前导和尾随约束均在适当位置。
| 归档时间: |
|
| 查看次数: |
20029 次 |
| 最近记录: |