2011-08-24 65 views
3

我已經看了整個節目,但無法找到如何簡單地定義我自己的節標題。到目前爲止,我已經試過這個。如何在UITableView中爲節添加標題?

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

} 

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    return 20; 
} 

從我讀這是兩個代表你需要添加自己的冠軍。所以我woundering TableView中發生的事情:viewForHeaderInSection:

我已經試過

if (section == 0){ 
    return @"header one"; 
} 

但這並沒有削減芥末..任何幫助將不勝感激。

+1

我想補充一個側面說明:您返回一個字符串while viewForHeaderInSection假設返回 - (UIView *) – Saran

回答

10

如果您只是想要一個標題,請在UITableViewDataSource中重寫此方法,而不是上面提到的兩個。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
+0

絕對正確。 – Nitish

+0

如果我們沒有在標題欄中使用任何標籤,我們必須返回什麼值,我試過這顯示錯誤「控制可能會達到非無效功能的結束」 – 2015-10-13 09:16:08

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

希望你返回一個對象,它是一個UIView,如一個UIView本身或像一個UILabel。

所以你可以做的是返回一個UILabel然後包含你的頭。例如:

UILabel *label = [[UILabel alloc] init]; 
[label setText:@"Section 0"]; 
[label autorelease]; 
return label; 

或者,您可以在界面構建器和alloc,init和style中設置整個視圖。

如果你正在尋找基本的文字,那麼gamozzii的答案就是你要找的。

+0

謝謝..所以說,比如說,如果你想要在標題右側的圖像或按鈕,你會做一些創建自己的視圖,然後從該委託方法調用它...? –

+0

是的,你可以在代碼中構建一個新的UIView,添加你的子視圖(比如右對齊的UILabel),然後返回新的UIView。 –

+1

很酷的挑釁會給這個嘗試在某些時候:P歡呼的幫助btw –

3

以下將幫助你。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
     return 1; 
    } 
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    { 
     UIView *av=[[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 22)] autorelease]; 
     NSString * weekdayString = [self getDayFromDate:testDate]; 
     UILabel *lblStr = [[UILabel alloc]initWithFrame:CGRectMake(40, 2, 100, 20)]; 
     lblStr.text = @"header one"; 
     lblStr.backgroundColor = [UIColor clearColor]; 
     lblStr.textColor=[UIColor whiteColor]; 
     lblStr.font = [UIFont boldSystemFontOfSize:15]; 
     [av addSubview:lblStr]; 
     [lblStr release];  
    } 
    - (CGFloat)tableView:(UITableView *)tableViewheightForHeaderInSection:(NSInteger)section { 
     return 40; 
    } 
2

只需使用這樣的:

//這是委託方法,你缺少的TableView中。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    if (section == 0){ 
     return @"header one"; 
     } 

} 

而如果你想添加的視圖頁眉或想要做自定義的東西,那麼你需要使用此委託方法:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section; 
相關問題