2010-02-03 69 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