2009-10-21 15 views
6

मैंने इंटरफेसबिल्डर के माध्यम से विशेष दृश्य में अपना व्यू कंट्रोलर सेट किया है। लेकिन initWithFrame कॉल नहीं कर रहा है, लेकिन drawRect कहा जा रहा है? जब मैं ब्रेक पॉइंट डालता हूं?UIView के initWithFrame काम नहीं कर रहा है?

उत्तर

17

दाएं, क्योंकि यह गारंटी नहीं है कि initWithFrame: को xib को अनारक्षित करते समय बुलाया जाएगा। awakeFromNib या viewWillLoad या viewDidLoad का उपयोग करने का प्रयास करें। आप जो भी चुनते हैं वह मुख्य रूप से आपके कोड को सम्मिलित करने के लिए प्रदर्शन प्रक्रिया के दौरान किस चरण पर निर्भर करेगा।

इसके अलावा, this question का उत्तर देखें।

3

प्रलेखन के अनुसार - http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html - initWithFrame: तब नहीं कहा जाता है जब आपकी दृश्य वस्तुएं बाद में निब फ़ाइल से लोड की जाती हैं। एक निब फ़ाइल में ऑब्जेक्ट्स का पुनर्गठन किया जाता है और फिर initWithCoder: विधि का उपयोग करके प्रारंभ किया जाता है, जो एनआईबी फ़ाइल में संग्रहीत विशेषताओं से मेल खाने के लिए दृश्य के गुणों को संशोधित करता है।

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