Zac*_*iro 1 uitableview ios autolayout uicollectionview swift
我有一个表格视图,其中有tableViewHeader一个充满单元格的部分。
在创建 之前UITableView,我创建了一个名为 的视图topSection,该视图具有视图的宽度和基于从 API 返回的文本的可变高度。
当我加载视图控制器时,由于 API 调用正在进行中,我可以非常简短地看到topSection(即UITableView.tableViewHeader)位于UITableViewCells. 然后,当reloadData在 my 中调用didSet来渲染表视图时,一切都会正确布局。
topSection在将其添加到之前,我不会以任何方式对其进行限制UITableView
我也尝试将 the 限制top为topSectionthetableView top但那也不起作用。
let listingsTableView = UITableView()
listingsTableView.backgroundColor = .white
listingsTableView.dataSource = self
listingsTableView.delegate = self
listingsTableView.rowHeight = 78
listingsTableView.bounces = false
listingsTableView.allowsSelection = false
listingsTableView.tableHeaderView = topSection
listingsTableView.register(ListingsHeaderView.self, forHeaderFooterViewReuseIdentifier: "HeaderView")
listingsTableView.register(ListingsTableViewCell.self, forCellReuseIdentifier: "ListingsCell")
view.addSubview(listingsTableView)
constrain(listingsTableView, topSection) { tableview, topSection in
tableview.top == tableview.superview!.top
tableview.left == tableview.superview!.left
tableview.right == tableview.superview!.right
tableview.bottom == tableview.superview!.bottom
}
self.listingsTableView = listingsTableView
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。谢谢!
我认为您遇到了一个常见问题 - 表格不会在没有一点提示的情况下“自动调整”标题视图的大小。
尝试将其添加到您的代码中(您可能需要更改视图引用...):
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
sizeHeaderToFit()
}
func sizeHeaderToFit() {
let headerView = theTableView.tableHeaderView!
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
theTableView.tableHeaderView = headerView
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2423 次 |
| 最近记录: |