如何做大tableView header?

Posted

技术标签:

【中文标题】如何做大tableView header?【英文标题】:How to do large tableView header? 【发布时间】:2017-10-08 08:52:00 【问题描述】:

我想做一个大的tableView 标题,就像在 ios 11 的健康应用程序中一样。我添加了一个屏幕截图,以红色文本显示这个元素。如何做大的tableView 标头?

【问题讨论】:

滚动时将在导航栏中成为标题的大“标题”是 iOS 11 中的新功能。如果您想要这些功能(并且仅在 iOS 11 上可用),请致电 Prefers Large Titles。如果您想在 iOS 10(及更早版本)中使用该样式,则必须为此编写大量代码。 【参考方案1】:

如果我正确理解了您的问题(不幸的是,屏幕截图不见了),您可以使用 prefersLargeTitles 属性来做到这一点。这仅适用于 iOS 11 及更高版本。

例如:

if (@available(iOS 11.0, *)) 
    self.navigationController.navigationBar.prefersLargeTitles = YES;
    self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;

 else 
    // Fallback on earlier versions

您可以在UITableViewControllerviewDidLoadviewWillAppear 中调用此代码。

【讨论】:

或者,您可以在 Storyboard 中执行此操作。首先在某人中选择您的UINavigationController,从左侧选择Navigation Bar,然后在右侧,选中Prefers Large Titles 框。还要在你的 UIViewController / UITableViewController 上设置标题。我用 iOS 10 模拟器测试:这不会导致 iOS 10 崩溃(当然对 iOS 10 没有影响)。【参考方案2】:

只需设置tableHeaderView的frame属性即可。

【讨论】:

【参考方案3】:

没有记录的数据是表视图标题。您可以使用 tableview 的 viewForHeaderInSection 方法自定义 tableview 标题。您的问题已在此链接中得到解答。 Changing Font Size For UITableView Section Headers

【讨论】:

【参考方案4】:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 

UILabel *TESTLabel = [[UILabel alloc] init];
TESTLabel .frame = CGRectMake(20, 8, 320, 40);
TESTLabel .font = [UIFont boldSystemFontOfSize:18];
TESTLabel .text = [self tableView:tableView titleForHeaderInSection:section];

UIView *headerView = [[UIView alloc] init];
[headerView addSubview: TESTLabel];

return headerView;

试试这个

【讨论】:

以上是关于如何做大tableView header?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Xib 在 Tableview Header 中快速重新加载 CollectionView

启用排序时,JavaFX Tableview标题颜色

如何动态调整tableheaderview的高度

如何在tableView中插入switch控件

ios tableView的header高度不对

TableView Section Header 滑动粘性问题