मेरे पास एक कस्टम ऑब्जेक्ट है, यह एनएसओब्जेक्ट से प्राप्त होता है। यह ऑब्जेक्ट "कुछ चीजें" करता है, इसमें से एक कुछ UIKit ऑब्जेक्ट्स (UILabel, UIButtons ecc ecc ...) के साथ एक UIView बना रहा है। इस ऑब्जेक्ट में कुछ गुण हैं जैसे: टेक्स्टकॉलर, फ़ॉन्ट, पृष्ठभूमि रंग ... जिसका उपयोग निहित UIKit ऑब्जेक्ट्स की उपस्थिति को अनुकूलित करने के लिए किया जाता है।कस्टम ऑब्जेक्ट्स के लिए यूआईपीपेरेंस प्रॉक्सी
मैं इस ऑब्जेक्ट के सभी बनाए गए उदाहरणों के लिए इस गुण को "एक शॉट" कस्टमाइज़ करना चाहता हूं, और मैंने UIAppearance प्रोटोकॉल को देखा है।
मानक UIKit ऑब्जेक्ट्स पहले से ही यूआईपीपेरेंस प्रोटोकॉल के अनुरूप हैं, लेकिन मैं सभी UILabels या UIButtons पर शैली को लागू नहीं करना चाहता हूं। मैं अपने ऑब्जेक्ट इंस्टेंस के अंदर केवल UILabels और UIButtons में शैलियों को लागू करना चाहता हूं। इसके अलावा, मैं उपस्थिति का उपयोग नहीं कर सकता (और मैं नहीं चाहता) उपस्थिति का उपयोग करें: क्योंकि मेरे कस्टम ऑब्जेक्ट का उपयोग करने वाला डेवलपर यह नहीं जानता कि इसके अंदर किस प्रकार की वस्तुएं "निहित" हैं।
तो, मैं देख रहा था कि मेरी कस्टम ऑब्जेक्ट को यूआईपीपीरेंस प्रोटोकॉल के अनुरूप कैसे बनाया जाए।
AFAIK यह
+ (id)appearance
विधि को लागू करना चाहिए। इस विधि को प्रॉक्सी ऑब्जेक्ट वापस करना चाहिए जहां आप अपने सभी अनुकूलन भेज सकते हैं। लेकिन, UIKit ऑब्जेक्ट्स की उपस्थिति विधि को देखते हुए, मुझे लगता है कि एक निजी वस्तु वापस आती है। कक्षा _UIAppearance का एक वस्तु।
तो ऐसा लगता है कि ऐप्पल मुझे अपना खुद का अनुकूलन करने के लिए मानक प्रॉक्सी ऑब्जेक्ट नहीं देता है, और मुझे स्क्रैच से बनाना है। क्या यह सही है या मैं कुछ खो रहा हूं?
धन्यवाद
ठीक काम करता है मैंने इसे बढ़ाया है, इसलिए यह कक्षा हिरासत में भी यात्रा करेगा ताकि यह अभिभावक वर्ग के विकल्प भी सेट कर सके: https://gist.github.com/vkodocha/5500276 (कोड इनलाइन जोड़ने में लंबा है)। – Chris
अच्छा काम! एक सुधार के रूप में, आप 'id' के बदले' instancetype' का उपयोग रिटर्न प्रकार के रूप में कर सकते हैं, ताकि आप स्पष्ट कलाकार को 'फ्लैपरपेरेंस' पर भी छोड़ सकें। –
@ गैब्रिएल पेट्रोनेला संकेत के लिए धन्यवाद ;-) – LombaX