2012-09-28 32 views
14

क्या ऐसा करने का कोई तरीका है? मैं न केवल Class Identity सेट करना चाहता हूं बल्कि डिज़ाइन किया गया क्लास बदल सकता हूं (इसलिए ऑब्जेक्ट गुणों को बदलना चाहिए)।एक्सकोड इंटरफेस बिल्डर: पहले से रखे गए ऑब्जेक्ट की कक्षा बदलें

कारण यह है कि मैंने UIView और बहुत सारे सबव्यूज़ रखा। अब मैं इसे UITableViewCell में बदलना चाहता हूं। शायद यह 'हैकिंग' xib फ़ाइल द्वारा किया जा सकता है?

उत्तर

13

दुर्भाग्य से, इंटरफ़ेसबिल्डर (जो मैंने पाया है) में ऐसा करने का कोई तरीका नहीं है। कस्टम क्लास को बदलना सिर्फ UIView में एक कस्टम क्लास जोड़ता है, जैसा कि आप उस वर्ग में UIView को बदलना चाहते हैं, जिसे आप चाहते हैं (उदा। UITableViewCell), जो आपके वांछित दृश्य के सभी गुणों को लाता है। आप इसे स्टोरीबोर्ड की एक्सएमएल फ़ाइल में देख सकते हैं।

आप चाहते हैं, कहते हैं, इस:

<label text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" ... id="Flb-Qd-jpJ"> ... </label> 

और इस नहीं:

<view ... id="Flb-Qd-jpJ" customClass="UILabel"> ... </view> 

लेकिन Xcode केवल यदि आप बाद दे रहा है; यह पूरे तत्व को अद्यतन करने के विरोध में दृश्य के कस्टम क्लास विशेषता को अद्यतन कर रहा है।

यदि आप पहले चाहते हैं, तो भी आप इसे प्राप्त कर सकते हैं, लेकिन आपको तत्व की आईडी को रखने के लिए स्वयं को XML फ़ाइल को संपादित करना होगा। यहां एक महान ब्लॉग आलेख है जो इसे अधिक विस्तार से समझाता है: http://codenetwaves.blogspot.com.br/2012/09/change-view-to-scrollview-in-xcode.html

+0

के भीतर सभी ऑब्जेक्ट को खींच सकते हैं, यह भी ध्यान दिया जाना चाहिए कि यह यहां पूछे गए प्रश्न का डुप्लिकेट है: http: // stackoverflow .com/प्रश्न/10724488/अद्यतन-uiview-class-in-interface-builder – lillialexis

+0

मुझे लगता है कि इस दृष्टिकोण का उपयोग करना बहुत सुरक्षित है: http://stackoverflow.com/a/36573454/1366265 – user1366265

-1

इंटरफ़ेस बिल्डर में आप तीसरा टैब खोलेंगे और कस्टम क्लास ढूंढेंगे। वहां आप UIView को UITableViewCell

+1

यह फ़ील्ड कोड में कस्टम क्लास को परिभाषित करता है। यह इंटरफ़ेस बिल्डर में ऑब्जेक्ट गुणों को प्रभावित नहीं करता है। – brigadir

+0

तो आप विंडो के सामग्री आकार को बढ़ा सकते हैं, टेबलव्यूसेल बना सकते हैं और तालिका ऑब्जेक्ट –