मैं एक UITableView की कोशिकाओं को अनुकूलित करने के लिए एक कस्टम nib फ़ाइल लोड कर रहा हूं। कस्टम निब में एक UILabel है जिसे टैग द्वारा मुख्य दृश्य से संदर्भित किया जाता है। मैं जानना चाहूंगा कि जब सेल को एक अलग रंग में चुना जाता है तो UILabel के छाया रंग को बदलना संभव है, तो यह स्क्रीनशॉट में दिखाई नहीं देता है।कस्टम सेल से UILabel छाया चयनित रंग
उत्तर
आप प्रतिनिधि में -tableView:willSelectRowAtIndexPath:
में लेबल की छाया रंग बदल सकता है। उदाहरण के लिए:
-(NSIndexPath*)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor greenColor];
return indexPath;
}
-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.textLabel.shadowColor = [UIColor redColor];
}
मैं प्रतिनिधि को प्रदूषित न करने के लिए टेबलसेल कोड के अंदर छाया रंग परिवर्तन करना पसंद करता हूं। इसका सरल उत्तर
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animate
{
UIColor * newShadow = highlighted ? [UIColor clearColor] : [UIColor whiteColor];
nameLabel.shadowColor = newShadow;
[super setHighlighted:highlighted animated:animate];
}
, कम से कम ऊपर दिखाए गए उदाहरण के लिए, पहली जगह में छाया प्रदर्शित नहीं करने के लिए है: आप इसे संभाल करने के लिए इस विधि ओवरराइड कर सकते हैं। चूंकि आप सफेद-ऑन-व्हाइट को वैसे भी नहीं देख सकते हैं, इसलिए छाया रंग को -कलर रंग सेट करें।
यदि आपको वास्तव में छाया की आवश्यकता है, तो सेट हाइलाइट किए गए विधि को ओवरराइड करना सबसे अच्छा समाधान है। यह कोड को सेल के साथ रखता है, जो मुझे लगता है कि तालिका दृश्य से इसे संभालने की कोशिश करने से बेहतर है।
मेरे पास एक ही समस्या थी और उपर्युक्त समाधानों में से कोई भी मेरे लिए काफी काम नहीं करता था - मैं UITableViewCell
को उपclass नहीं करना चाहता था और कुछ मुश्किल चयनित/हाइलाइट किए गए राज्य परिवर्तनों को प्रोग्रामेटिक रूप से भी किया गया था, जो ऊपर दिए गए समाधानों के साथ अच्छा नहीं खेलता था ।
MySolution:
मैं अंत में क्या किया था एक छाया के रूप में कार्य करने के लिए प्राथमिक UILabel
के नीचे एक दूसरे UILabel
उपयोग करने के लिए है। उस 'छाया' के लिए UILabel
आप 'हाइलाइट किए गए रंग' को 'साफ़ रंग' पर सेट कर सकते हैं।
स्पष्ट रूप से आपको प्रत्येक बार प्राथमिक लेबल अपडेट करने पर छाया लेबल अपडेट करना होगा। कई मामलों में भुगतान करने की कोई बड़ी कीमत नहीं है।
आशा है कि मदद करता है!
- 1. UILabel टेक्स्ट रंग
- 2. डेटाग्रिड व्यू से चयनित सेल
- 3. कस्टम टेबल दृश्य सेल चयन फ़ॉन्ट रंग
- 4. मैं कस्टम सेल
- 5. UILabel
- 6. UICollectionViewCell छाया रंग
- 7. एसवीजी: छाया का रंग
- 8. चयनित पंक्ति पृष्ठभूमि रंग
- 9. UILabel
- 10. कस्टम UILabel टेक्स्ट
- 11. UILabel
- 12. UILabel सेटिंग पारदर्शी पृष्ठभूमि रंग?
- 13. कस्टम सेल (प्रोग्रामेटिक रूप से) के साथ तालिका दृश्य
- 14. UITableView सेल टेक्स्ट लेबल रंग
- 15. Jqgrid सेट सेल पृष्ठभूमि रंग
- 16. कस्टम फ़ॉन्ट के साथ UILabel
- 17. जेटीबल सेल रंग बदलना
- 18. एक drawRect में NSString पाठ करने के लिए एक बूंद छाया जोड़ना: UILabel
- 19. WPF डेटाग्रिड सेल रंग पूर्व सेल मूल्य
- 20. कस्टम NSTableCellView लेबल चयनित होने पर टेक्स्ट रंग नहीं बदलते
- 21. RichTextBox रंग चयनित लाइनें
- 22. UILabel
- 23. सी # - DataGridView और SelectedCells - चयनित सेल
- 24. UILabel
- 25. UITableView - चयनित सेल को हाइलाइट करना [आईओएस]
- 26. चयनित UIButton चयनित UITableViewCell
- 27. चयनित विकल्प का रंग बदलें केवल
- 28. कस्टम JTable सेल संपादक और सेल रेंडरर
- 29. कस्टम सेल से NSIndexPath वापसी? (UITableView)
- 30. UISearchDisplayController और कस्टम सेल
यह उत्तर हाइलाइट किए गए सेल स्थिति के लिए काम नहीं करता है (यानी यदि उपयोगकर्ता सेल पर दबाता है लेकिन रिलीज़ नहीं होता है)। जेसन का जवाब दुर्भाग्यवश सबसे अच्छा है जिसे मैंने इस मामले से निपटने के लिए देखा है। यह दुर्भाग्यपूर्ण है कि इसमें उप-वर्गीकरण शामिल है। आपको सेट को ओवरराइड करने की भी आवश्यकता हो सकती है: – Prometheus