2012-01-05 173 views
10

我想自定義TableView節標題並保留默認背景色。我使用 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)部分。我需要根據設備(iPad或iPhone)更改字體大小。爲此目的調用下一個功能:iPhone上的默認TableView節標題背景顏色是什麼?

[UIColor colorWithHue:0.6 saturation:0.33 brightness:0.69 alpha:0.6]。

但我手動發現這些值。

回答

23

爲ios7默認的tableview節頭的背景顏色是

Objective-C 
[UIColor colorWithRed:247/255.0f green:247/255.0f blue:247/255.0f alpha:1.0f] 

Swift 
UIColor(red: 247/255, green: 247/255, blue: 247/255, alpha: 1) 
+0

作爲所有的顏色組件是相同的(247/255),更簡單的修改原生是: 'UIColor(白色:0.97,alpha:1)' 其中0.97〜247/255 – 2017-03-15 10:20:31

0

我在我的應用程序之一所做的就是創建文本,像這樣:

NSString *sectionTitle = @"YOUR TITLE HERE"; 
CGSize sz = [sectionTitle sizeWithFont:[UIFont boldSystemFontOfSize:20.0f] 
        constrainedToSize:CGSizeMake(290.0f, 20000.0f) 
         lineBreakMode:UILineBreakModeWordWrap]; 

CGFloat height = MAX(sz.height, 20.0f); 

CGRect sectionFrame = CGRectMake(0.0, 0.0, 320.0, height); 

我用290約束寬度給兩邊的標籤房客。然後我用像這樣的可拉伸的圖像:

UITableViewHeaderImage

並縮放,以適合在標題文本:

UIImage *headerImage = [UIImage imageNamed:@"sectionheaderbackground.png"]; 
    UIImage *stretchableImage = [headerImage stretchableImageWithLeftCapWidth:12 topCapHeight:0]; 
    UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:sectionFrame]; 
    backgroundImageView.image = stretchableImage; 

    // Add it to the view for the header 
    UIView *sectionView = [[UIView alloc] initWithFrame:sectionFrame]; 
    sectionView.alpha = 0.9; 
    sectionView.backgroundColor = [UIColor clearColor]; 
    [sectionView addSubview:backgroundImageView]; 

最後,我創建的標籤,並添加它作爲一個子視圖:

CGRect labelFrame = CGRectMake(10.0, 0.0, 290.0, height); 
    UILabel *sectionLabel = [[UILabel alloc] initWithFrame:labelFrame]; 
    sectionLabel.text = sectionTitle; 
    sectionLabel.numberOfLines = 0; 
    sectionLabel.font = [UIFont boldSystemFontOfSize:18.0]; 
    sectionLabel.textColor = [UIColor whiteColor]; 
    sectionLabel.shadowColor = [UIColor grayColor]; 
    sectionLabel.shadowOffset = CGSizeMake(0, 1); 
    sectionLabel.backgroundColor = [UIColor clearColor]; 
    [sectionView addSubview:sectionLabel]; 

    return sectionView; 
3

對於TableView中報頭部分的更改背景顏色只有一行的東西 添加TableView委託willDisplayHeaderView

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section { 

    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view; 
    **header.tintColor = [UIColor whiteColor];** 

} 
1

的Objective-C:

[UIColor colorWithRed:232/255.0f green:233/255.0f blue:237/255.0f alpha:1.0f] 

斯威夫特:

UIColor(red: 232/255, green: 233/255, blue: 237/255, alpha: 1) 
+0

這適用於iOS 9及更高版本 – 2017-07-15 10:31:27