के अंदर xib ऑब्जेक्ट का उपयोग करके मैं आईबी को एक विशिष्ट बटन (कुछ लेबल, और छवि दृश्य और अन्य सामान के साथ) का उपयोग कर डिज़ाइन कर रहा हूं।किसी अन्य xib
मैं उस xib ऑब्जेक्ट (बटन) को किसी अन्य xib में उपयोग करना चाहता हूं, जहां मेरे पास उस बटन की 6 ऑब्जेक्ट्स हैं।
मुझे पता है कि मैं क्लास आइडेंटिफ़ायर का उपयोग करके प्रोग्रामेटिक रूप से ऐसा कर सकता हूं, लेकिन फिर मुझे अपने लेबल्स और छवि दृश्य को स्थानांतरित करना होगा, और कोड में डिफ़ॉल्ट मान और बाकी सब कुछ सेट करना होगा।
मुझे आश्चर्य है कि आईबी का उपयोग करके एक ही चीज़ करना संभव है?
तो (निश्चित रूप से मैं अभी भी कोड में मान निर्धारित होता है, लेकिन मैं lables/imageView और सभी बाकी के पदों xib में सेट करने के लिए चाहते हैं)
धन्यवाद
संपादित , मैं समझता हूं कि मैंने पहले जो पूछा था वह संभव नहीं है। अब मैं जो कोशिश कर रहा हूं वह इस तरह है:
मैंने ButtonTest.xib
बनाया। Xib के अंदर मेरे पास UIView और 3 सबव्यूज़ (2 लेबल्स और एक बटन) है। इंस्पेक्टर में मैंने UIView क्लास को ButtonTest
पर सेट किया है। बटनटेस्ट.एम के अंदर मेरे पास प्रत्येक सबव्यू के लिए 3 आउटलेट हैं, जिन्हें मैं आईबी में जोड़ता हूं।
अगला मेरे पास ButtonTestViewController.xib
है। इसके अंदर मैंने एक दृश्य रखा और इंस्पेक्टर में इसकी कक्षा ButtonTest
होने के लिए सेट की। मैं ButtonTestViewController.m
अंदर वर्ग ButtonTest
की अब एक myTextView
आउटलेट से उस दृश्य कनेक्ट करते हैं, इस ButtonTestViewController.m viewDidLoad अंदर कोड है:
- (void)viewDidLoad {
[super viewDidLoad];
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"ButtonTest" owner:nil options:nil];
ButtonTest *mainView = (ButtonTest*)[subviewArray objectAtIndex:0];
self.myTextView = mainView;
}
मैं क्या आशा व्यक्त की क्या होगा, यह है कि ButtonTestViewController में देखने के लिए। xib उस दृश्य को बन जाएगा जिसे मैंने ButtonTest.xib में डिज़ाइन किया था। यह अभी नहीं हो रहा है। क्या होता है कि बटनटेस्ट व्यू कंट्रोलर.एक्सिब के अंदर का दृश्य वही रहता है।
[self.view addSubview:mainView];
यह नया दृश्य जोड़ते करता मौजूदा एक के अलावा,:
उल्लेख के लायक, कि अगर मैं जोड़ है।
कोई विचार है कि मैं क्या करना चाहता हूं?
आखिरकार मैं ButtonTestViewController.xib
में 6 विचारों को देखना चाहता हूं, सभी ButtonTest.xib टेम्पलेट की तरह दिखेगा, और लेबल्स मान कोड में सेट किए जाएंगे।
EDIT2
ठीक है, लोग मैं सब कुछ किया था तुमने कहा था और यह एक आकर्षण की तरह काम किया। इस समस्या के साथ अभी मेरे पास एकमात्र समस्या है जब ButtonTestViewController.xib
में दृश्य थोड़ा बड़ा है तो ButtonTest.xib
में देखें। जब ऐसा होता है, बटन पर लचीला बेहद धुंधला दिखता है। जब वे दोनों एक ही आकार के होते हैं, तो यह सब अच्छा है।-
@ नेड मैं सटीक कोड तुम मेरे InitWithCoder विधि में तैनात छोड़कर मैं इस के लिए फ्रेम की सजा बंद कर इस्तेमाल किया,:
self.bounds = mainView.frame;
मैं इसे ठीक करने की कोशिश आईबी में सामग्री मोड के साथ खेल की कोशिश की है, असफलता से।
जब मैं की तरह आप पोस्ट, जिसका अर्थ यह प्रयोग करते हैं:
mainView.frame = self.bounds;
यह बिल्कुल भी काम नहीं कर रहा है, और दोनों बार देखा गया 'आकार एक ही रहते हैं। यहां मैंने आकार बदलने के साथ खेलने की कोशिश की लेकिन अभी भी काम नहीं किया।
और विचार करें कि इन 2 मुद्दों को कैसे ठीक किया जाए? धन्यवाद दोस्तों!
संपादित 3
मैं मुद्दों में से एक ठीक करने के लिए, ButtonTestViewController.xib
को ButtonTest.xib
दृश्य आकार आकार बदलने का प्रबंधन कैसे किया। यह वही मैंने किया
self.bounds = CGRectMake(0, 0, mainView.frame.size.width, mainView.frame.size.height);
CGRect overlay2Frame = self.frame;
overlay2Frame.origin.x = round(overlay2Frame.origin.x);
overlay2Frame.origin.y = round(overlay2Frame.origin.y);
self.frame = overlay2Frame;
अन्य मुद्दा मैं अभी भी हल नहीं कर सकता (अस्पष्ट मुद्दा, here से लिया हल करने के लिए कोड का उपयोग) है। ButtonTest.xib में दृश्य अन्य दृश्य से मेल खाने के लिए बड़ा नहीं होगा।
मुझे लगता है कि ओपी इतनी दूर पहले से ही हो गया है। वह पूछ रहा है कि बाद में अन्य .xib फ़ाइलों में MyView.xib का उपयोग कैसे करें और कस्टम इंटरफ़ेस को पूरी तरह से संपादित करने में सक्षम हो। –
मैट सही है, हालांकि मैंने एक नया प्रश्न के साथ सवाल संपादित किया। कृपया देख लीजिये। – Idan
मैंने अपना उत्तर थोड़ा और स्पष्ट होने के लिए संपादित किया है। मुझे लगता है कि यह वही है जो आप करना चाहते हैं। – Ned