2012-11-25 74 views
2

我有一個故事板,其中包含一個UITableViewController。表格視圖是靜態的,包含兩個部分。表視圖完全在IB中設置(包括表視圖部分的頁眉和頁腳文本) - 我沒有在視圖控制器中實現任何表視圖委託方法。獲取靜態UITableView的UITableViewHeaderFooterView

如果我試圖獲得對給定節的UITableViewHeaderFooterView的引用,它總是返回nil。

UITableViewHeaderFooterView* header =[self.tableView headerViewForSection:0]; 

當我運行應用程序,我可以看到我在IB設置頁眉和頁腳文本,所以我知道這些觀點在那裏。我只是無法弄清楚如何以編程方式訪問它們。

任何幫助將不勝感激, CS

回答

2

其實你需要指定表頁腳視圖,並將它傳遞給使用其委託的表視圖。

例如,假設您已經定義了名爲tableFooterView的IBOutlet UIView。 然後在下面的委託方法,你可以通過你的tableFooterView你的表視圖:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section; // custom view for footer. will be adjusted to default or specified footer height 
{ 
    return self.tableFooterView; 
} 

你也需要實現以下方法來設置表的頁腳視圖的高度:

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
{ 
    return self.tableFooterView.frame.size.height; 
} 
+0

謝謝暗影惡魔。出於某種原因,我認爲會有一個現有的頁眉/頁腳視圖,因爲我可以在IB中自定義它們。 – RobertJoseph

+0

其實只有一個,但Apple不會讓你訪問它。這些天他們破壞了可可的許多優良特性。 – osxdirk