मैं कई प्रकार के कस्टम UITableViewCell उप-वर्गों (एक ही आईबीओटलेट्स - एक ही रूप - विभिन्न विधियों और तर्क) के लिए एक XIB फ़ाइल का उपयोग करने का प्रयास कर रहा हूं।एकाधिक UITableViewCell सबक्लास के लिए एक XIB
मैं यह कैसे कर सकता हूं?
मैं कई प्रकार के कस्टम UITableViewCell उप-वर्गों (एक ही आईबीओटलेट्स - एक ही रूप - विभिन्न विधियों और तर्क) के लिए एक XIB फ़ाइल का उपयोग करने का प्रयास कर रहा हूं।एकाधिक UITableViewCell सबक्लास के लिए एक XIB
मैं यह कैसे कर सकता हूं?
कड़ाई से बोलते हुए, ढांचा एक xib से अपने फ़ाइल स्वामी को सख्त बाध्यकारी लागू नहीं करता है।
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"EXCustomCell" owner:nil options:nil];
EXFirstCustomCell *firstCell = (EXFirstCustomCell*)[nibContents objectAtIndex:0];
firstCell.firstView = [firstCell.contentView viewWithTag:VIEW_TAG];
firstCell.button = [firstCell.contentView viewWithTag:BUTTON_TAG];
अपने व्यापार तर्क के आधार पर, आप अपने कस्टम UITableViewCell
वर्ग सूट करने के लिए [nibContents objectAtIndex:0];
का परिणाम डाल सकता: आप एक निब लोड करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं।
# 1 संपादित करें:
Typecasting आम तौर पर एक बुरा विचार है, क्योंकि firstCell
अभी भी वर्ग UITableViewCell
की तरह हो जाएगा। एक अच्छा विचार आपके स्वयं के कन्स्ट्रक्टर को बनाना होगा, nibContents
को तर्क के रूप में पास करें और वहां अपना व्यू असाइनमेंट करें।
एक स्वतंत्र xib दृश्य बनाएँ और वहाँ अपने सेल डिजाइन:
# संपादित 2
मैं प्रयोग का एक सा था और यहाँ कैसे मैं इस काम मिल गया है। इसे एक दृश्य होना है। आप यहां क्या कर रहे हैं यह है कि आप परिभाषित कर रहे हैं कि contentView
कैसे होगा।
xib से सभी विचार लोड करें। NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"EXCommonContentView" owner:nil options:nil];
तो जैसे अपने कस्टम सेल के एक निर्माता बनाएँ:
-initWithNibContents:(NSArray*)nibContents {
self = [super init]
if(self) {
self.contentView = [nibContents objectAtIndex:0];
self.button = [self.contentView viewWithTag:BUTTON_TAG];
self.view = [self.contentView viewWithTag:VIEW_TAG];
}
}
यू एकल tablview का उपयोग कर रहे हैं? –