3 回答

TA貢獻1773條經驗 獲得超3個贊
我知道這個問題是針對iOS 5的,但是為了將來的讀者受益,請注意,我們現在可以使用有效的iOS 6 dequeueReusableHeaderFooterViewWithIdentifier代替dequeueReusableCellWithIdentifier。
因此viewDidLoad,請致電registerNib:forHeaderFooterViewReuseIdentifier:或registerClass:forHeaderFooterViewReuseIdentifier:。然后在viewForHeaderInSection,請致電tableView:dequeueReusableHeaderFooterViewWithIdentifier:。您不能使用帶有此API的單元原型(它是基于NIB的視圖或以編程方式創建的視圖),但這是用于出列的頁眉和頁腳的新API。

TA貢獻1827條經驗 獲得超8個贊
只需使用原型單元格作為您的節的頁眉和/或頁腳。
添加一個額外的單元格,然后將所需的元素放入其中。
將標識符設置為特定的內容(在我的情況下為SectionHeader)
實現
tableView:viewForHeaderInSection:
方法或tableView:viewForFooterInSection:
方法用于
[tableView dequeueReusableCellWithIdentifier:]
獲取標題實現該
tableView:heightForHeaderInSection:
方法。
-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
static NSString *CellIdentifier = @"SectionHeader";
UITableViewCell *headerView = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (headerView == nil){
[NSException raise:@"headerView == nil.." format:@"No cells with matching CellIdentifier loaded from your storyboard"];
}
return headerView;
}
編輯:如何更改標題標題(注釋的問題):
向標題單元格添加標簽
將標簽的標簽設置為特定數字(例如123)
在您的tableView:viewForHeaderInSection:方法中,通過調用以下命令獲取標簽:
UILabel *label = (UILabel *)[headerView viewWithTag:123];
現在,您可以使用標簽設置新標題:
[label setText:@"New Title"];

TA貢獻1872條經驗 獲得超4個贊
在iOS 6.0及更高版本中,新dequeueReusableHeaderFooterViewWithIdentifier
API 改變了一切。
我寫了一個指南(在iOS 9上測試過),可以總結如下:
子類
UITableViewHeaderFooterView
使用子類視圖創建Nib,并添加1個容器視圖,其中在頁眉/頁腳中包含所有其他視圖
注冊筆尖
viewDidLoad
實施
viewForHeaderInSection
并用于dequeueReusableHeaderFooterViewWithIdentifier
獲取頁眉/頁腳
- 3 回答
- 0 關注
- 625 瀏覽
添加回答
舉報