【问题标题】:How to mix "Custom Section Header View(s)" and "Regular Header(s)" in a UITableViewController?如何在 UITableViewController 中混合“自定义部分标题视图”和“常规标题”?
【发布时间】:2010-02-03 22:10:54
【问题描述】:

想象一个包含多个部分的表格(“StyleGrouped”):

  • 某些部分应该有一个“常规标题”。
  • “常规部分”之间应该有一些按钮。

直观地说,为了定义章节标题,我会使用:

(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

为了模拟按钮,我将通过以下方式创建自定义 UIView:

(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

问题是当您开始使用viewForHeaderInSection 时,titleForHeaderInSection 停止工作...

这是有道理的,因为我们现在应该提供自定义标题视图。唯一的问题是没有办法访问 UIKit 用来呈现“常规标题标题”的原始 UIView...

不是世界末日(即创建自己的 UILabel 并模拟 UIKit 外观),但我只是想知道我是否错过了什么(?)

【问题讨论】:

  • 后来发现:问题似乎不是使用“viewForHeaderInSection”时“titleForHeaderInSection”停止工作。相反,问题在于您必须通过 heightForHeaderInSection 返回“常规标题标题”的猜测高度。 HTH

标签: iphone uitableview uikit


【解决方案1】:

似乎 viewForHeaderInSection 在 titleForHeaderInSection 之前被调用。但是,如果您确实为不想使用视图的特定行返回 nil,则会调用 titleForHeaderInSection。

【讨论】:

  • 感谢您的努力,但这并不能完全解决问题。无论如何,它帮助我发现解决方案是在必须显示“常规标题标题”时在 (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger) 部分返回硬编码值 31。跨度>
  • 更正:原来的 UIKIt 高度是 36。我个人还是更喜欢 31,因为它减少了(默认超大)上边距...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 2019-09-20
相关资源
最近更新 更多