2010-02-03 68 views
9

试想一个表(“StyleGrouped”)具有多个部分:如何在UITableViewController中混合“Custom Section Header View(s)”和“Regular Header(s)”?

  • 有些部分应该有一个“常规的头题”。
  • 在“常规部分”之间应该有一些按钮。

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

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

而且为了模拟按钮,我会创造通过自定义UIViews:

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

的问题是,当你开始使用viewForHeaderInSection时,然后titleForHeaderInSection停止工作...

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

不是世界的尽头(即创建自己的UILabel并模拟UIKit外观&感觉)但我只是想知道我是否错过了某些东西(?)

+1

后来发现:当使用“viewForHeaderInSection”时,问题似乎不是“titleForHeaderInSection”停止工作。相反,问题是您必须通过heightForHeaderInSection返回“常规标题标题”的猜测高度。 HTH – 2010-02-03 23:23:48

回答

7

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

+0

感谢您的努力,但并未完全解决问题。无论如何,它帮助我发现解决方案是在(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)节中返回31的硬编码值,每当需要显示“常规标题标题”时。 – 2010-02-03 23:18:19

+0

更正:最初的UIKIt高度是36.我个人还是比较喜欢31,因为它减少了(默认超大)顶部边缘... – 2010-02-03 23:47:39