app*_*eak 69 iphone uitableview
我已经浏览了有关UITableView类和委托引用的Apple文档,但无法找到明确设置表头高度的方法.
我使用以下委托设置表格单元格高度:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
并使用以下代理设置节标题/页脚高度.
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
Run Code Online (Sandbox Code Playgroud)
谁能帮我设置表格页眉/页脚高度?
谢谢.
bcd*_*bcd 58
我找到了一个很好的黑客.修改框架属性后添加以下行
self.tableView.tableHeaderView = self.tableView.tableHeaderView;
Run Code Online (Sandbox Code Playgroud)
诀窍是(我认为)当你将视图分配给tableHeaderView属性时,UITableView正在缓存高度(实际上是框架).上面的线只是再次分配高度.
Kri*_*ris 36
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
sizeHeaderToFit()
}
private func sizeHeaderToFit() {
let headerView = tableView.tableHeaderView!
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
tableView.tableHeaderView = headerView
}
Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里找到
如果您仍然需要它,您是否尝试过设置该属性
self.tableView.tableHeaderView
Run Code Online (Sandbox Code Playgroud)
如果您计算所需的高度,并为以下内容设置新视图tableHeaderView:
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = newHeight;
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:frame];
Run Code Online (Sandbox Code Playgroud)
它应该工作.
只有当我将tableview的页脚/标题设置为nil时,它才适用于我:
self.footer = self.searchTableView.tableFooterView;
CGRect frame = self.footer.frame;
frame.size.height = 200;
self.footer.frame = frame;
self.searchTableView.tableFooterView = nil;
self.searchTableView.tableFooterView = self.footer;
Run Code Online (Sandbox Code Playgroud)
确保self.footer是一个强大的参考,以防止页脚视图被释放
| 归档时间: |
|
| 查看次数: |
112771 次 |
| 最近记录: |