से कस्टम UIView मैं चीजों को व्यवस्थित रखने और अपने ऐप के दृश्यों का पदानुक्रम बनाने की कोशिश कर रहा हूं। तो उदाहरण के लिए, मैं कुछ पाठ प्रदर्शित करने के लिए एक कस्टम दृश्य बनाना चाहता हूं, प्रगति प्रदर्शित करने के लिए एक और कस्टम दृश्य और फिर व्यू-आधारित एप्लिकेशन टेम्पलेट के साथ बनाए गए मुख्य दृश्य में उन सभी दृश्यों का उपयोग करना चाहता हूं।इंटरफ़ेस बिल्डर
मैं बनाने का तरीका यह पता प्रोग्राम के रूप में - आप UIView
उपवर्ग बनाने के लिए, drawRect तरीका लागू, एक खाली UIView
इंटरफ़ेस बिल्डर में जगह है और मौका कक्षा अपने कस्टम वर्ग के लिए है। मेरी समस्या यह है कि मैं उन कस्टम व्यू के को इंटरफ़ेस बिल्डर में प्रोग्रामेटिक रूप से बनाना चाहता हूं।
अब तक मैं साथ XIB फ़ाइल UIViewController
नियंत्रक बना लिया है और टेम्पलेट से देखने नियंत्रक के viewDidLoad
विधि में मुझे लगता है कि कस्टम दृश्य नियंत्रक उदाहरण बना सकते हैं और जोड़ने है कि खाली UIView
इंटरफ़ेस बिल्डर में जोड़ा की एक subview के रूप में यह दृश्य है (वैसे ही आप प्रोग्रामेटिक दृष्टिकोण में कक्षा बदल देंगे)।
यह काम करता है, लेकिन यह मेरे लिए एक हैक है और मेरे लिए यह विश्वास करना मुश्किल है कि एक बेहतर तरीका नहीं है जहां मैं viewDidLoad
विधि को लागू किए बिना इंटरफ़ेस बिल्डर में उन कस्टम दृश्यों को जोड़ सकता हूं और नियंत्रक बना सकता हूं और उस विधि के अंदर अपने विचार जोड़ें।
हम्म .. मान लें कि मेरे पास मेरे प्रोजेक्ट में 4 एक्सआईबी हैं - 2 "मानक" व्यू-आधारित एप्लिकेशन टेम्पलेट XIBs: MainWindows.xib और TestViewController.xib। अब चीजों को साफ रखने के लिए मैं 2 अतिरिक्त दृश्य बनाना चाहता हूं - एक और XIB में प्रत्येक दृश्य: CustomTextView.xib और CustomProgressView.xib। मैं पहले और UILabel UIProgressView को पहले में UILabel और UIButton जोड़ता हूं। अब मैं उन दो कस्टम दृश्यों को अपने TestViewController.xib दृश्य में जोड़ना चाहता हूं। मैं यह कैसे कर सकता हूं (जिस तरह से मैंने इसे किया और XIB डिज़ाइन का उपयोग करके UIView subclass DrawRect में सबकुछ ड्राइंग नहीं किया)? – shw
ठीक है, मुझे लगता है कि मैंने आपको प्राप्त किया है। अगर कस्टमटेक्स्ट व्यू और कस्टम प्रोग्रेस व्यू दृश्य हैं या इसे विस्तारित करते हैं, तो आपको मुख्य मुख्य दृश्य में UIView जोड़ना चाहिए - मुख्य मुख्य विंडो के लिए- और पहचान निरीक्षक (इंस्पेक्टर में चौथा टैब) में आपको UIView से कक्षा बदलनी चाहिए आपकी कक्षा में (कस्टम प्रोग्रेस व्यू उदा।)। – Ratinho
ठीक है - लेकिन इसके लिए मुझे एक कक्षा बनाना है जो UIView का उप-वर्ग है - अन्यथा कस्टम फ़ीक्स्टव्यू कक्षा फ़ील्ड में दिखाई नहीं देगी। यदि मैं ऐसा करता हूं तो मैं इसे कस्टमटेक्स्टव्यू.एक्सआईबी फ़ाइल के साथ "कनेक्ट" कैसे करूं? मैं initWithCoder विधि को ओवरराइड करने में कामयाब रहा, '[NSBundle loadNibNamed]' विधि का उपयोग करके xib लोड करें और पहले यूआईवीव सबक्लास के सबव्यूव के रूप में इसे वापस देखें, लेकिन यह अभी भी हैकिंग जैसा लगता है और ऐसा करने के लिए एक बेहतर तरीका होना चाहिए। – shw