2013-10-01 9 views
30

नीचे UITableView कस्टम UITableViewCells है और मैं कस्टम UITableViewCell में इस लाइन का उपयोग कर विभाजक ठीक समायोजित कर सकते हैं:iOS7 अंतिम सेल पूरी चौड़ाई विभाजक

self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0); 

हालांकि वर्ग के नीचे सेल एक डिफ़ॉल्ट विभाजक है जो सेट किए गए कस्टम UIEdgeInsets को ओवरराइड करता है।

मुझे सभी विभाजक समान चौड़ाई होने के लिए चाहते हैं, क्या विभाजक को मैन्युअल रूप से दोबारा हटाए बिना ऐसा करने का कोई तरीका है?

UITableView with wide section separator in iOS7

उत्तर

12

कुछ प्रयोग करने के बाद मैं केवल वास्तविक समाधान मिल गया है का उपयोग कर UITableViewStyle को UITableViewStylePlain और सेट खाली पाद स्थापित करने के लिए है की सभी सुविधाएं, लेकिन यह मुझे पूर्ण-चौड़ाई विभाजक के बिना अनुभाग देता है।

enter image description here

+1

यह एक अच्छा समाधान है, लेकिन मैं सिर्फ डिफ़ॉल्ट विभाजक को छिपाना पसंद करता हूं और मेरी तालिका कक्षों के नीचे 1px दृश्य जोड़ना पसंद करता हूं। – Sulthan

+6

मेरे पास एक ही स्थिति है और यह तब तक काम करता है जब तक कि मैं अंतिम सेल पर टैप नहीं करता। टैप के बाद अंतिम विभाजक फिर से पूर्ण चौड़ाई है और इसे कोड में बदल रहा है '[self.tableView setSeparatorInset: UIEdgeInsetsMake (0, 15, 0, 0)]' मदद नहीं की। कोई भी समाधान? – lvp

+1

लगता है कि 'viewForFooterInSection' वास्तव में अनावश्यक है। 'HeightForFooterInSection' के रूप में वापसी .01f चाल चलती है। कोई और खतरनाक विभाजक नहीं! – Nuthatch

2

tableView पर ही separatorInset संपत्ति, बजाय व्यक्तिगत कोशिकाओं पर उपयोग की। तालिका दृश्य का विभाजक इन्सेट डिफ़ॉल्ट इन्सेट सेट करता है, जिसे कोशिकाओं द्वारा ओवरराइड किया जा सकता है, साथ ही नीचे "अतिरिक्त" कोशिकाओं के लिए इन्सेट भी किया जा सकता है। क्योंकि UITableViewStylePlain प्रदान नहीं करता है,

-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 
{ 
    return [[UIView alloc] initWithFrame:CGRectZero]; 
} 

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
{ 
    return 0.01f; 
} 

यह कुछ के लिए एक संतोषजनक समाधान नहीं होगा:

+6

दुर्भाग्य से बदल रहा है tableView के 'separatorInset' शुरुआत और प्रत्येक अनुभाग के अंत में विभाजक प्रभावित नहीं करता। ये तालिका दृश्य की चौड़ाई को स्थायी रूप से भरने लगते हैं। 'विभाजक इन्सेट' को बदलना केवल मध्य विभाजक को प्रभावित करता है। –

2

तालिका एक खाली पाद लेख दें:

self.tableFooterView = [[UIView alloc] init] 
+0

मैं नहीं देखता कि लोग इसका उपयोग कैसे नहीं करते हैं। यह बेकार ढंग से काम करता था जब अन्य तरीकों ने मुझे इतनी सारी समस्याएं दीं –

4

कुछ प्रयोग मैं समाधान मिल गया है के बाद! tableFooterView इस तरह विभाजक कवर किया जा सकता:

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)]; 
UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)]; 
v2.backgroundColor = [UIColor whiteColor]; 
v.backgroundColor = [UIColor whiteColor]; 
[v addSubview:v2]; 
self.tableView.tableFooterView = v; 
iOS7 में
+0

यह मेरे लिए काम किया! मैंने फॉरफूटर इनसेक्शन में 'v' भी वापस कर दिया। धन्यवाद! – Jacob

संबंधित मुद्दे