2009-07-29 17 views
108

में अनुभाग शीर्ष लेख के लिए डिफ़ॉल्ट ऊंचाई मैं अपने UITableView में पहली हेडर की ऊंचाई सेट करना चाहते हैं। अन्य शीर्षकों के लिए मैं उन्हें डिफ़ॉल्ट ऊंचाई बनी रहना चाहता हूं। नीचे दिए गए कोड में "someDefaultHeight" के स्थान पर मैं क्या मूल्य/निरंतर रख सकता हूं?UITableView

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    if (section == 0) 
     return kFirstHeaderHeight; 

    return someDefaultHeight; 
} 

धन्यवाद

+0

कि काम करना चाहिए – Daniel

+0

कारण है कि आप विभिन्न मूल्यों की कोशिश जब तक तुम getone है कि आप के साथ खुश हैं न? – Daniel

+4

@Daniel - यदि ऐप्पल कभी भी डिफ़ॉल्ट पंक्ति ऊंचाई मान को बदलने का फैसला करता है तो मुझे यह सुनिश्चित करने की आवश्यकता है कि मेरा ऐप इस मान को हार्ड कोड नहीं करता है (कुछ मनमानी राशि के लिए)। अगर यह कहीं घोषित किया जाता है तो इस जानकारी को निरंतर से बाहर खींचना सबसे अच्छा है। – rein

उत्तर

185

आईओएस 5.0 के बाद आप प्रतिनिधि तरीकों में से अधिकांश में UITableViewAutomaticDimension लौट सकते हैं। इसके प्रलेखन पेज

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    if(section == CUSTOM_SECTION) 
    { 
     return CUSTOM_VALUE; 
    } 
    return UITableViewAutomaticDimension; 
} 
+1

हम्म .. मुझे 'UITableViewAutomaticDimension' रिटर्न' -1' (hardcoded स्थिरांक) और मैं किसी भी वर्गों मेरी 'UITableView' में बिल्कुल भी नहीं दिख रहा है का सवाल है। – skywinder

+0

क्यों 'UITableViewAutomaticDimension' -1' एनएसएलओजी 'दिखाता है? – S1U

+26

यह केवल काम करता है जब आप क्षेत्र का उपयोग: '- (NSString *) tableView: (UITableView *) tableView titleForHeaderInSection: (NSInteger) section' आप' लागू कर रहे हैं - (UIView *) tableView: (UITableView *) tableView viewForHeaderInSection: (एनएसआईएनटेगर) सेक्शन विधि, यह काम नहीं करता है। – SuperSaiyen

46

मेरे एप्लिकेशन में चूक यह एक समूहीकृत तालिका के लिए की तरह लग रहा डिफ़ॉल्ट 22 की ऊंचाई है और एक गैर वर्गीकृत किया तालिका के लिए डिफ़ॉल्ट से 10

की ऊंचाई है जाँच से

यदि आप संपत्ति तालिका के मूल्य की जांच करते हैं तो हेडर हेइट आपके टेबलव्यू पर आपको बताएगा।

+1

धन्यवाद ... मैं इसे इस पर कड़ी मेहनत कर दूंगा। हालांकि मैं चाहता हूं कि इस मूल्य के लिए स्थिर रहे। – rein

+3

आपके पास ये पीछे हैं। 'UITableViewStyleGrouped' 22 है और' UITableViewStylePlain' है 10. –

+2

नहीं, वह सही है; सादा 22. – pt2ph8

-1

यह चाल

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(indexPath.section == CUSTOM_SECTION) 
    { 
     return CUSTOM_VALUE; 
    } 
    return [tableView rowHeight]; 
} 
+0

है मुझे लगता है कि तुम्हारा मतलब 'वापसी [आत्म sectionHeaderHeight];' – TMB

+0

@TMB '[आत्म sectionHeaderHeight];' एक त्रुटि पैदा करता है। क्या आपका मतलब था '[टेबल व्यू सेक्शन हेडर हाइट]; '? – jk7

24

करना चाहिए वास्तव में चाल करना :)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    if(section == 0) 
     return kFirstSectionHeaderHeight; 
    return [self sectionHeaderHeight]; 
} 
+1

मुझे लगता है कि आप का मतलब 'वापसी [self.tableView sectionHeaderHeight];', या बेहतर अभी तक, 'वापसी [tableView sectionHeaderHeight];'। हालांकि, मेरे लिए दोनों वापसी -1, शायद क्योंकि मैं एक निब या स्टोरीबोर्ड का उपयोग नहीं कर रहा हूं। – jk7

2

मुझे यकीन है कि क्या सही जवाब यहाँ है नहीं कर रहा हूँ, लेकिन न तो 10 या 22 से प्रदर्शित करना आईओएस 5 में समूहबद्ध तालिका दृश्य के लिए सही ऊंचाई 5. मैं this प्रश्न के आधार पर 44 का उपयोग कर रहा हूं, और यह कम से कम सही ऊंचाई पर दिखाई देता है।

5

पूर्णता के लिए के लिए के तल पर: iOS7 में + वर्गीकृत किया शैली अनुभाग हेडर के लिए ऊंचाई पहली और 38 हेडर निम्नलिखित के लिए के लिए 55.5 है। (DCIntrospect से मापा)

2

डिफ़ॉल्ट ऊंचाई प्राप्त करने के लिए, बस जाने super संभाल यह:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    if (section == 0) 
     return kFirstHeaderHeight; 

    return [super tableView:tableView heightForHeaderInSection:section]; 
} 
+0

'[सुपर टेबल दृश्य: तालिका दृश्य ऊंचाईफॉररइडर इनसेक्शन: सेक्शन]; 'मेरे लिए 0 लौटाता है, शायद क्योंकि मैं एक निब या स्टोरीबोर्ड का उपयोग नहीं कर रहा हूं। – jk7

+0

यह केवल तभी काम करता है जब आप UITableViewController को उप-वर्गीकृत कर रहे हों। – Wallace