2009-10-08 20 views
5

समस्या पर कोशिकाओं के बीच UITableView विभाजक रेखाएं गायब हो जाती हैं समस्या: तालिका दृश्य में कक्षों के बीच विभाजक केवल लोड होने पर दिखाए गए उन कक्षों के लिए दिखाई देता है, और केवल लोड समय पर। जब टेबलव्यू नीचे स्क्रॉल किया जाता है, तो दृश्य में स्क्रॉल की गई कोशिकाएं उनके बीच कोई विभाजक नहीं दिखाती हैं, फिर जब टेबलव्यू बैक अप होता है, तो प्रारंभिक कक्ष कोई विभाजक नहीं दिखाते हैं।स्क्रॉल

विवरण: मुझे एक UITableView मिला है जिसमें मैं मानक UITableViewCells जोड़ रहा हूं। इन कोशिकाओं को initWithFrame, फ्रेम ऊंचाई = 90px के साथ बनाया गया है। मैं एक निब से इस सेल के दृश्य, ऊंचाई = 90 पीएक्स में बनाया गया एक कस्टम दृश्य जोड़ रहा हूं। कक्ष ऊंचाई 90px पर तालिका में निर्दिष्ट है दृश्य: heightForRowAtIndexPath:।

क्या किसी ने इस व्यवहार का अनुभव किया है?

उत्तर

6

मुझे लगता है कि इसका समाधान आसान होगा ... मैंने अपनी कोशिकाओं की ऊंचाई 91px की ऊंचाई बनाई और विभाजक लाइनों को स्क्रॉल पर दिखाना चाहिए।

3

मैं डगलस के समाधान का उपयोग नहीं कर सका क्योंकि मेरी टेबल में बड़ी मात्रा में कोशिकाएं हैं और पुराने फोन पर बहुत अधिक अनुपयोगी बन जाएंगी। पुन: उपयोग करने वाले कोशिकाओं प्रदर्शन के लिए महत्वपूर्ण है।

yourTable.separatorColor = [UIColor clearColor]; 
separatorView.frame = FactRectMake(0, rowHeight-1, appFrame.size.width, 0.2); 
3

मैं एक ही समस्या थी, लेकिन मुझे कोई दूसरा समाधान इस्तेमाल किया:

लेकिन, मैं इस समस्या एक पारदर्शी विभाजक का उपयोग कर और सेल के contentView में अपने खुद के जोड़ने वैकल्पिक हल के लिए इस प्रकार में कामयाब रहे। मेरे विभाजक गायब थे क्योंकि मैं अपने सेल समाशोधन किया गया था का उपयोग कर:

for (UIView *eachView in self.subviews) { 
    [eachView removeFromSuperview]; 
} 

यह रूप में अच्छी तरह विभाजक दृश्य निकाला गया!

इसके बजाय, मैं सही उप दृश्य करने के लिए उन्हें जोड़ने से पहले मेरी सीमा दृश्य (तीन लेबल) में से प्रत्येक के लिए एक टैग लगा दिया: फिर

tempFirstNameLabel.tag = 100; 
self.firstNameLabel = tempFirstNameLabel; 
[self addSubview:self.firstNameLabel]; 

जब मैं सेल को मंजूरी दे दी, मैं सिर्फ उन दृश्यों को हटा दिया:

for (int i = 100; i<103; i++) { 
    UIView *eachView = [self viewWithTag:i]; 
    [eachView removeFromSuperview]; 
} 

आशा है कि इससे मदद मिलती है! यह स्मृति प्रबंधन समस्याओं से भी बचाता है जो @ डगलस स्मिथ का समाधान सामने आया।

1

आप विभाजक कोई भी और उसके बाद फिर एक पंक्ति

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

    // it is a bug in iOS 7 
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
    tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; 
स्थापित करना चाहिए