2010-10-08 12 views
5

मैं तालिका में अपनी स्थिति के आधार पर सेल के पृष्ठभूमि रंग को संशोधित करने के लिए कोड लिखने की कोशिश कर रहा हूं। जबकि निम्न कोड 'काम करता है', यह केवल उन कोशिकाओं को प्रभावित करता है जो इसे पास किए जाते हैं। खाली कोशिकाएं प्रभावित नहीं होती हैं।मैं अपनी स्थिति के आधार पर खाली UITableViewCell ऑब्जेक्ट के पृष्ठभूमि रंग को कैसे संशोधित करूं?

- (void)tableView: (UITableView*)tableView willDisplayCell: (UITableViewCell*)cell forRowAtIndexPath: (NSIndexPath*)indexPath 
{ 
    if(!indexPath.row%2) 
    { 
     cell.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 1.0 alpha: 1.0] ; 
     NSLog(@"Blue"); 
    } 
    else{ 
     cell.backgroundColor = [UIColor whiteColor]; 
     NSLog(@"white"); 
    } 
    cell.textLabel.backgroundColor = [UIColor clearColor]; 
    cell.detailTextLabel.backgroundColor = [UIColor clearColor]; 
} 

मैं कोशिकाओं प्रदर्शित किए जाते हैं, अगर खाली के बाकी कैसे कर सकते हैं प्रभाव, जब वहाँ सूची में कुछ आइटम हैं?

'खाली' कोशिकाओं, मैं प्लेसहोल्डर कोशिकाओं है कि आपके डेटा स्रोत तालिका दृश्य को दी पूरे दृश्य को भरने के लिए पर्याप्त डेटा नहीं है जब प्रदर्शित किए जाते हैं मतलब है। उदाहरण के लिए, यदि आप 10 कोशिकाओं को फिट कर सकते हैं, लेकिन केवल 5 मूल्यवान डेटा हैं, तो आप केवल 5 कोशिकाओं को काम करने के लिए सौंप देते हैं - अगले 5 खाली हैं और जहां तक ​​मैं कह सकता हूं, अप्राप्य।

+0

ताकि आप टेबल कोशिकाओं को नीले और सफेद के बीच वैकल्पिक रूप से चाहते हैं, भले ही कोशिकाओं में डेटा है या यदि वे खाली हैं? – Nabou

+0

@ नाबू हाँ, यही वही था जो मैं चाहता था - एक बार एक बार। मैं वास्तव में अब और उसके बीच मध्यवर्ती वर्षों में चले गए हैं, हालांकि। इस समस्या पर यह समस्या पूरी तरह से सैद्धांतिक है। ऐप 'बहुत समय पहले' मर गया '(और पूरी कंपनी ने इसे विकसित किया) – RonLugge

उत्तर

0

आप

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
आपका प्रतिनिधि में

को लागू करने और कोशिकाओं को प्रारंभ के रूप में आप चाहते हैं चाहिए।

+0

दुर्भाग्यवश, ऐसा लगता है कि यह काम नहीं कर रहा है। कोड जोड़ना: cell.backgroundcolor = [UIColor colorWithRed: 1.0 हरा: 0.0 नीला: 0.0 अल्फा: 1.0]; किसी भी कोशिका को बदलने के लिए कुछ भी नहीं करता है, वे सभी डिफ़ॉल्ट सफेद-ग्रे रंग बाहर आते हैं। – RonLugge

2

मुझे लगता है कि आप केवल "खाली" कोशिकाओं की पृष्ठभूमि बदलना चाहते हैं ... तो फिर तुम UITableView की InterfaceBuilder में पृष्ठभूमि रंग बदल सकते हैं। लेकिन यह सभी खाली कोशिकाओं को प्रभावित करेगा।

आप विभाजक प्रकार भी बदल सकते हैं। http://www.zenbrains.com/blog/en/2010/06/color-de-fondo-de-celdas-vacias/

संपादित करें:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    // 7 depends on how many cell is shown 
    return ([source count] <= 7) ? 7 : [source count]; 
} 

से:

इसके अलावा, यहाँ एक नजर है Show blank UITableViewCells in custom UITableView

+0

मैं सभी कोशिकाओं को प्रभावित करना चाहता हूं - मैं चाहता हूं कि सभी कोशिकाएं दो संकेतित रंगों के बीच आगे और आगे बढ़ने के लिए प्रदर्शित हों।हां, आपके द्वारा प्रदर्शित लिंक उपयोगी स्रोत प्रदान नहीं करता है; अगर मैं सामग्री के पृष्ठभूमि रंग को आज़माकर सेट करता हूं, तो यह पूरे सेल के रंग को ठीक से नहीं बदलता है। दाईं ओर अपरिवर्तित रंग की 'पट्टी' है। और इसे बदल रहा है इसलिए मैं चयनित बैकग्राउंड व्यू बदल रहा हूं, या सिर्फ पृष्ठभूमि दृश्य, कुछ भी नहीं करता है। – RonLugge

+0

मैं अपना उत्तर संपादित करता हूं: आपको अपने आप को अतिरिक्त कोशिकाओं को जोड़ना होगा, और अब सेलफॉररोएट इंडेक्सपैथ में सभी कक्ष अनुकूलन योग्य होंगे। –

+1

समस्या यह है कि मेरे पास उन अतिरिक्त कक्ष नहीं हैं (स्रोत डेटा के संदर्भ में), जो अन्य अनपेक्षित परिणामों का कारण बनता है। – RonLugge

1

अगर सेल की contentView की पृष्ठभूमि रंग संपत्ति, सेट किया गया है नहीं यह काम करना चाहिए पृष्ठभूमि सेल का रंग:

cell.contentView.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 1.0 alpha: 1.0] ; 
+0

मैंने बिंदु को और स्पष्ट करने के लिए प्रश्न संपादित किया है। (हालांकि मुझे आश्चर्य है कि यह दो साल बाद खो गया ...) – RonLugge

0

के रूप में यहाँ का सुझाव दिया निम्न पंक्ति में एक ही तर्क आप willDisplayCell विधि

में इस्तेमाल के साथ विधि

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

में

[[cell contentView] setBackgroundColor:[UIColor colorWithRed:0 green:128/255.f blue:0 alpha:1]]; 

जोड़ने के लिए प्रयास करें: http://www.zenbrains.com/blog/en/2010/06/color-de-fondo-de-celdas-vacias/

* सूचना है कि हम [सेल सामग्री दृश्य] के लिए पृष्ठभूमि रंग बदलते हैं

+0

कृपया प्रश्न को और अधिक बारीकी से पढ़ें। यह तालिका के पृष्ठभूमि रंग को स्थापित करने की बात नहीं है, मैं खाली कोशिकाओं सहित वास्तविक कोशिकाओं के रंग को वैकल्पिक करना चाहता था। – RonLugge

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