2009-01-30 14 views
18

मुझे लगता है कि नया UIViews और UIControls डिज़ाइन करने का आनंद लेता है जो अपने -drawRect: विधि को लागू करता है। यह मेरे लिए अच्छा काम करता है, खासकर जब UIViewsइंटरफ़ेस बिल्डर में बनाकर बना हुआ है।इंटरफ़ेसबिल्डर में कस्टम UIViews को आप कैसे प्रदर्शित करते हैं?

लेकिन इंटरफेस बिल्डर में उन्हें लिखना परेशान है क्योंकि वे सिर्फ उबाऊ सादे आयताकार के रूप में दिखाई देते हैं।

यह अच्छा होगा अगर विचार वास्तव में अंतर्निहित नियंत्रण के रूप में स्वयं को प्रस्तुत करेंगे।

क्या कोई तरीका है कि मैं अपनी परियोजना को ढूढ़ सकता हूं ताकि इंटरफेस बिल्डर मेरे कस्टम विचार प्रस्तुत करे?

उत्तर

18

ऐसा करने के लिए, आपको वास्तव में इंटरफ़ेस बिल्डर के लिए एक प्लग-इन बनाना होगा जो आपकी कस्टम क्लास का उपयोग करता है। एक बार जब आप अपना प्लग-इन बनाते और इंस्टॉल करते हैं, तो आप अपनी कक्षा (आपके दृश्य) के उदाहरणों को किसी अन्य विंडो/व्यू/किसी भी अन्य नियंत्रण की तरह खींचने और छोड़ने में सक्षम होंगे। आईबी प्लग-इन बनाने के साथ शुरू करने के लिए, कृपया Interface Builder Plug-In Programming Guide देखें। इसके अलावा, मैं हारून हिलेग्रास की पुस्तक, Cocoa Programming for Mac OS X पर एक नज़र डालने की सलाह देता हूं। साथ ही साथ अच्छी तरह से लिखित और समझने में आसान होने के साथ, यह आपके स्वयं के आईबी पैलेट नियंत्रण बनाने का एक अध्याय है।

+20

2012+ में इस पोस्ट पर आने वाले लोगों के लिए बस एक टिप्पणी: एक्सकोड 4 अब आईबी प्लग-इन का समर्थन नहीं करता है। तुम अभागे हो। –

+0

धन्यवाद @RandyMarsh मुझे संभवतः 30-60 मिनट बचाने के लिए :) –

+1

@EgeAkpinar आपका स्वागत है। :-) और मुझे खेद है कि आपकी समस्या के लिए एक अचूक समाधान की खोज जारी रखना, जो भी हो सकता है। :-p –

1

यह आपके UIView सबक्लास को @IBDesignable के साथ चिह्नित करके प्राप्त किया जा सकता है। एक बार ऐसा करने के बाद, आपके कस्टम विचार इंटरफेस बिल्डर में खुद को प्रस्तुत करेंगे। आप पैरामीटर भी जोड़ सकते हैं जिन्हें उन्हें @IBInspectable के रूप में चिह्नित करके कॉन्फ़िगर किया जा सकता है। यहाँ एक स्विफ्ट उदाहरण है:

@IBDesignable class customView: UIView { 

    @IBInspectable var count: Int = 0 

} 

एक article on NSHipster कि और अधिक विस्तार प्रदान करता है।

+1

ऊपर उपयोग करके दृष्टिकोण हम ऑब्जेक्ट लाइब्रेरी में कस्टम व्यू नहीं जोड़ सकते हैं। – ManiaChamp

+0

@ManiaChamp, आप सही हैं, लेकिन सवाल ऑब्जेक्ट लाइब्रेरी में दृश्य को जोड़ने के बारे में नहीं पूछता है। – tebs1200

+1

यह प्रश्न किसी अन्य व्यक्ति से जुड़ा हुआ है जो ऑब्जेक्ट लाइब्रेरी में एक कस्टम दृश्य जोड़ने के लिए कहता है - इसलिए हम में से बहुत सारे यहां देख रहे हैं। ;) – leanne

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