2013-06-05 12 views
5

के लिए UILabel का टेक्स्ट रंग बदलें मैं कुल ऐप के लिए सभी UILabel के टेक्स्ट रंग को बदलना चाहता हूं, मैं यह कैसे कर सकता हूं। क्या लेबल रंग बदलने का कोई आसान तरीका है।कुल परियोजना

मैं इस कोशिश की, लेकिन मैं हर वर्ग

for(UIView *view in [testScroll subviews]) 
    { 
     if([view isKindOfClass:[UILabel class]]) 
     { 
      [(UILabel *)view setTextColor:[UIColor whiteColor]]; 

     } 
     else if([view isKindOfClass:[UIView class]]) 

    } 

में लिखने के लिए इस कोड को बदलने के लिए किसी को भी है सरल विधि है चाहता हूँ।

+1

क्या आप आईओएस 5+ को लक्षित कर रहे हैं? – Alladinian

+0

@ अलादीनी हां – user2197875

उत्तर

1

UILabel का उप-वर्ग बनाएं। आप इनिट फ़ंक्शंस को ओवरराइड कर सकते हैं जहां आप इच्छित टेक्स्ट रंग सेट कर सकते हैं। अपने प्रोजेक्ट में उस सबक्लास का प्रयोग करें।

+0

आप ऐसा क्यों करेंगे जब आप केवल '[[यूलाबेल उपस्थिति] सेटटेक्स्टकोलर का उपयोग कर सकते हैं: [यूआईसीओएलआर लाल रंग]]; '? जो सभी UILabels के पाठ रंग को बदल देगा। कृपया आप 'उपस्थिति' का उपयोग करने के तरीके को समझाने और समझने का कारण दे सकते हैं? – Popeye

+0

@Popeye ऐसा लगता है कि UILabel पर UIAppearence प्रॉक्सी का उपयोग करने के साथ कुछ समस्याएं हैं। देखें http://stackoverflow.com/a/11839198/1029360 – Adithya

+0

@Popeye मुझे आपके स्टेटमेंट – user2197875

12

वैसे आप iOS 5+ आपको लगता है कि वास्तव में आसान कर सकता है (अंदर आप AppDelegate) लक्षित कर रहे हैं:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    //... 

    //This color will affect every label in your app 
    [[UILabel appearance] setTextColor:[UIColor redColor]]; 

    //... 

    return YES; 
} 

यह काम करता है क्योंकि UILabelUIAppearance प्रोटोकॉल के अनुरूप है, तो आप किसी भी वर्ग के अनुरूप अनुकूलित कर सकता है इस तरह प्रोटोकॉल। इस here is a nice tutorial to get you started और here is Apple's docs on the protocol

+0

अच्छा और सरल उत्तर :) – samir

+1

नीला सुंदर है: '[[यूलाबेल उपस्थिति] सेट रंग: [यूआईसीओएलएल ब्लू रंग]];^^^ – Groot

+0

मेरा दिमाग बदल गया:' [[यूआईएलएबल उपस्थिति] सेट रंग: [यूआईसीओएलर बैंगनी रंग]]; – Groot

2
@interface CustomLabel : UILabel 
@end 

@implementation CustomLabel 

- (id)init{ 
    if ([super init]){ 
     self.textColor = // Putt here the color you want. 
    } 

    return self; 
} 

और अब अधिक जानकारी के लिए जूस अपने CustomLabel का उपयोग करें।

+0

क्या मैं एपडिलेगेट फ़ाइल में बदल सकता हूं – user2197875

+0

जब आप [[UILabel उपस्थिति] setTextColor: [UIColor redcolor]] का उपयोग कर सकते हैं तो आप ऐसा क्यों करेंगे ?? जो सभी UILabels के पाठ रंग को बदल देगा। कृपया आप समझाने और उपस्थिति का उपयोग करने के तरीके को अपना रास्ता देने का कारण दे सकते हैं? – Popeye

+1

@Popeye क्योंकि UIAppareance के साथ करना लचीला नहीं है, कल्पना करें कि एक दिन वह चाहता है कि एक लेबल हम लाल रंग और अन्य सभी नीले रंग का रंग लेंगे :) – samir