2010-03-05 19 views
9

में सेक्शन हेडर का रंग बदलना मेरे पास बहुत आसान सरल प्रश्न है (मुझे उम्मीद है)। मैं डिफ़ॉल्ट नीले से काले पारदर्शी से UITableview में सेक्शन हेडर रंग कैसे बदलूं? अग्रिम धन्यवाद।UITableview

+1

यहाँ एक समान सवाल यह है: http://stackoverflow.com/questions/813068/uitableview-change-section-header -color – nylund

उत्तर

18

आप UITableViewDelegate प्रोटोकॉल में इस पद्धति लागू करने की आवश्यकता:

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

यहाँ documentation

के लिए एक लिंक है ... और (अपनी खुद की रंग में उप) कुछ इस तरह करते हैं:

UIView *sectionView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 22)] autorelease]; 
[sectionView setBackgroundColor:[UIColor blackColor]]; 
return sectionView; 

आप वैकल्पिक रंगों या समान कुछ के लिए अनुभाग पूर्णांक का भी उपयोग कर सकते हैं। मुझे लगता है कि खंडों के लिए डिफ़ॉल्ट ऊंचाई 22 है, लेकिन आप इसे जो कुछ भी चाहते हैं उसे बना सकते हैं। क्या यह आपके प्रश्न से आपका मतलब है? उम्मीद है की यह मदद करेगा।

+0

धन्यवाद, मैंने सोचा कि आईबी में काले रंग में स्विच करने के लिए कुछ प्रकार का ट्रिगर होगा। लेकिन वैसे भी, धन्यवाद। –

+1

लेकिन कृपया, उन विचारों को कैश करें। UIKit में बग है जब टेबल व्यू स्क्रॉल किया जा रहा है, तो हेडर दृश्यों के लिए पूछना है, इसलिए स्क्रॉल करते समय इस विधि को प्रत्येक पिक्सेल ऑफसेट के लिए बुलाया जाएगा। 22px वास्तव में डिफ़ॉल्ट ऊंचाई है। – Joost

+1

नमस्ते, मैं समझता हूं कि स्क्रॉलिंग होने पर इस विधि को बुलाया जाता है ... अनावश्यक विचारों को बनाए रखने के लिए हम इसे कैसे कैश कर सकते हैं ..? अगर आप अपनी पोस्ट में कोई टिप्पणी या अपडेट पोस्ट कर सकते हैं तो यह बहुत उपयोगी होगा। धन्यवाद – Pavan

0
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    { 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,tableView.bounds.size.width, 30)]; 
    if (section == 0) 
    [headerView setBackgroundColor:[UIColor redColor]]; 
    else 
    [headerView setBackgroundColor:[UIColor clearColor]]; 
    return headerView; 
    } 
20

यह एक पुराना सवाल है, लेकिन मुझे लगता है कि उत्तर को अद्यतन करने की आवश्यकता है।

इस विधि में आपके स्वयं के कस्टम विचारों को परिभाषित करने में शामिल नहीं है।
आईओएस 6 और ऊपर में, आप

- (void)tableView:(UITableView *)tableView 
     willDisplayHeaderView:(UIView *)view 
     forSection:(NSInteger)section
प्रतिनिधि विधि को परिभाषित करके आसानी से पृष्ठभूमि रंग और टेक्स्ट रंग बदल सकते हैं।

उदाहरण के लिए:

 
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section 
{ 
    // Background color 
    view.tintColor = [UIColor blackColor]; 

    // Text Color 
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view; 
    [header.textLabel setTextColor:[UIColor whiteColor]]; 

    // Another way to set the background color 
    // Note: does not preserve gradient effect of original header 
    // header.contentView.backgroundColor = [UIColor blackColor]; 
} 

मेरी पोस्ट यहाँ से लिया: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/