2012-11-15 10 views
13

क्या सभी विचारों के लिए समान पृष्ठभूमि छवि सेट करने का कोई तरीका है?आईओएस सभी व्यू कंट्रोलर के लिए पृष्ठभूमि रंग सेट करें self.view के

सभी viewDidLoad: विधियों में समान पृष्ठभूमि सेट करना। यह अच्छा नहीं है।

+0

यह कोड का केवल एक लाइन है, बस कॉपी और पेस्ट। आपके पास कितने विचार हैं? – woz

+0

सभी सबव्यू के माध्यम से लूप और पृष्ठभूमि लागू करने का एकमात्र तरीका है जिसे मैं सोच सकता हूं। – chrislhardin

+0

क्या आप वाकई अपने पृष्ठभूमि रंग को पारदर्शी पर सेट नहीं करना चाहते हैं और कंटेनर व्यू के लिए एक बार रंग सेट करना चाहते हैं? –

उत्तर

3

हाँ, iOS5 + में UIAppearance का उपयोग कर:

[[UIView appearance] setBackgroundColor:[UIColor redColor]]; 

नोट: UIView<UIAppearance, UIAppearanceContainer> प्रोटोकॉल के अनुरूप है, लेकिन किसी कारण से UI_APPEARANCE_SELECTOR रूप में किसी भी गुण का प्रतीक नहीं है।

+17

सत्य है, लेकिन यह सभी सबव्यूज़ के लिए पृष्ठभूमि सेट करेगा जो बटन, लेबल आदि सहित UIView (लगभग सबकुछ) को उपclass ... – jimpic

0

मुझे नहीं लगता कि यह एक अच्छा विचार है, लेकिन अगर तुम सच में ऐसा करना चाहते हैं, तो आप इस तरह कुछ कर सकता है:

- (void)setBGColor:(UIColor *)color forAllSubviewsOf:(UIView *)view 
{ 
    [view setBackgroundColor:color]; 
    for (UIView *sub in view.subviews) 
     [self setBGColor:color forAllSubviewsOf:sub]; 
} 
8

आप एक कस्टम वर्ग बना सकते हैं, के लिए यह एक कॉल टेम्पलेट व्यू, जो UIView के उप-वर्ग है। फिर xib/storyboards का उपयोग कर नियंत्रक दृश्य और पहचान निरीक्षक का चयन करें क्लास प्रॉपर्टी को 'टेम्पलेट व्यू' में बदलें।

इसके बाद एक यूआईपीपीरेंस का उपयोग करके टेम्पलेट व्यू का पृष्ठभूमि रंग वांछित में बदल जाता है।

[[TemplateView appearance]setBackgroundColor:[UIColor blueColor]]; 

इससे आपकी परियोजना में प्रत्येक टेम्पलेट दृश्यों का पृष्ठभूमि रंग बदल जाएगा। मुझे लगता है कि यह

[[UIView appearance] setBackgroundColor:[UIColor redColor]]; 

क्योंकि हम सब कुछ की पृष्ठभूमि में परिवर्तन नहीं करते की तुलना में बेहतर समाधान, बस हमारे कस्टम वर्ग है। उम्मीद है कि यह मदद करेगा।

+0

स्वीकार्य उत्तर से यह एक बेहतर जवाब है। सभी UIViews को एक पृष्ठभूमि देने से कई अप्रत्याशित दुष्प्रभाव पैदा होंगे। – StijnSpijker

0

मुझे लगता है कि आप सभी दृश्य रंग या छवि सेटिंग बदलने के लिए विधि स्विजलिंग प्रकार का कुछ उपयोग कर सकते हैं।

चेक निम्नलिखित

https://wiredcraft.com/blog/method-swizzling-ios/

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