如何做大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
您可以在UITableViewController
的viewDidLoad
或viewWillAppear
中调用此代码。
【讨论】:
或者,您可以在 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?的主要内容,如果未能解决你的问题,请参考以下文章