2011-08-30 156 views
0

我想使UITableView的部分標題視圖backgroundColor透明。我不想格式化標題中的文本,因爲我喜歡默認的格式。我能做到這一點有:UITableViewCell標題的背景顏色

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

,而不必在UILabel文字的格式?我嘗試過的所有內容都會覆蓋部分標題中的文本(我從tableView:titleForHeaderInSection:獲得),但我不知道如何自己格式化文本。

+2

你爲什麼怕格式化UILabel中的文本? –

+0

只是不想花費時間:-)我正在尋找默認的文本顏色,陰影,縮進,字體大小等。只是保持默認值就好了。 – SundayMonday

回答

2

那麼,表格單元格沒有標題。

UITableView的部分標題是一個獨立的視圖。

是的,

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

是實現表委託方法。它返回一個顯示錶頭的UIView(派生)。

請確保您實現

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 

以及並返回適當的高度,每一個標題。 (可能只是一個常數值)

+1

更正爲'UITableView'的部分標題8-) – SundayMonday

+1

那麼,現在你已經改寫了這個問題,這對我來說更加清楚。 不,viewForHeaderInSection不會更改默認外觀。該方法提供了一個完整視圖,用於替換該部分標題的默認外觀。 我害怕如果你喜歡默認設計(奇怪雖然:),那麼你將不得不將自己的設計與默認的設計。 AFAIK viewForHeaderInSection是將任何內容更改爲節標題的唯一方法 –

0

您可以使用現有的默認標題UITableViewHeaderFooterView並更改它的值。這樣,您就不必自己創建爲textLabel並且仍然可以使用tableView:titleForHeaderInSection:

一定要與先註冊reuseIdentifyer:

[self.tableView registerClass:[UITableViewHeaderFooterView class] forHeaderFooterViewReuseIdentifier:@"header"]; 

例子:

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

    UITableViewHeaderFooterView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:@"header"]; 
    header.contentView.backgroundColor = [UIColor redColor]; 
    header.textLabel.textColor = [UIColor whiteColor]; 
    return header; 
}