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

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

【问题讨论】:

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

标签: ios objective-c


【解决方案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;
      }
      

      试试这个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-15
        相关资源
        最近更新 更多