2015-12-13 8 views
5

का उपयोग कर सभी UITableViewCells के टेक्स्ट रंगों को बदलें, मैं UIAppearance तंत्र का उपयोग कर UITableViewCell के टेक्स्ट रंगों को बदलने में सक्षम नहीं हूं।UIAppearance

यहाँ टिप्पणी दिखा क्या मेरे लिए काम और क्या कर रहा है के साथ अपने कोड है नहीं है:

UITableViewCell *cell = [UITableViewCell appearance]; 
cell.backgroundColor = [UIColor blueColor]; // working 
cell.textLabel.textColor = [UIColor whiteColor]; // NOT WORKING 
cell.detailTextLabel.textColor = [UIColor redColor]; // NOT WORKING 

UILabel *cellLabel = [UILabel appearanceWhenContainedIn:[UITableViewCell class], nil]; 
cellLabel.textColor = [UIColor whiteColor]; // working 

आप देख सकते हैं, दूसरी तरह से काम कर रहा है, लेकिन मैं सामान्य पाठ और विस्तार करने के लिए अलग अलग रंग निर्धारित नहीं कर सकते पाठ।

क्या ऐसा कुछ है जो मैं गलत कर रहा हूं?

पीएस इंटरफ़ेस बिल्डर में स्थिर रूप से परिभाषित सामग्री मेरे लिए काम नहीं करेगी - मेरे पास थीम हैं जिन्हें रन टाइम के दौरान गतिशील रूप से बदला जा सकता है।

उत्तर

3

आप सही काम कर रहे हैं, लेकिन UIAppearance का उपयोग करके उन दो लेबलों के बीच आईओएस को अलग करने का कोई तरीका नहीं है। आपको या तो willDisplayCell में टेक्स्ट रंग सेट करना चाहिए, या यदि आप वास्तव में UIAppearance का उपयोग करना चाहते हैं, तो कस्टम UILabel उप-वर्ग बनाएं जिन्हें आप अधिक सटीक रूप से लक्षित कर सकते हैं।

आप willDisplayCell उपयोग करना चाहते हैं, यह कुछ इस तरह दिखेगा:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    cell.textLabel.textColor = [UIColor blackColor]; 
    cell.detailTextLabel.textColor = [UIColor redColor]; 
} 

वैकल्पिक रूप से, you might also find this answer has some other ideas.

+0

मुझे एक छोटी स्पष्टीकरण की आवश्यकता है - मैंने विस्तृत पाठ के लिए केवल एक यूलाबेल सबक्लास बनाया है, MyLabel कहें। फिर मैंने एक ही कक्षा पदानुक्रम दोनों देने, UILabel उपस्थिति और MyLabel उपस्थिति रंग करने की कोशिश की। समस्या यह है कि UILabel रंग हमेशा "जीतना" होता है और MyLabel रंग कभी लागू नहीं होता है। शर्तों का मूल्यांकन कैसे किया जाता है इस पर कोई विचार? – frangulyan

1

आप इस तरह पाठ रंग सेट कर सकते हैं।

[cell.textLabel setTextColor:[UIColor whiteColor]]; 
[cell.detailTextLabel setTextColor:[UIColor redColor]]; 
+0

जैसा कि मैंने अपनी पोस्ट में उल्लेख किया है - यह काम नहीं कर रहा है। मुझे लगता है कि '[cell.textLabel setTextColor: [UIColor whitecolor]];' और 'cell.textLabel.textColor = [UIColor whitecolor] के बीच कोई अंतर नहीं है; // काम नहीं कर रहा है – frangulyan

+0

आप लेबल को UILabel * लेबल = (UILabel *) से देखने की कोशिश कर सकते हैं [cell.contentView viewWithTag: yourLabelTag]; फिर पाठ रंग सेट करें। –

+0

यह एक उपस्थिति प्रॉक्सी है, इसमें कोई सामग्री नहीं है दृश्य। – frangulyan

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