11

से दृश्य का आकार बदलें मेरे पास एक कस्टम UIViewController और एक निब फ़ाइल में एक संबंधित दृश्य है। दृश्य UIWindow पर सीधे जोड़ा गया है। खिड़की और देखने केइंटरफ़ेस बिल्डर: एनआईबी

[window addSubview:customViewController.view]; 

आकार डिफ़ॉल्ट हैं (480x320 और 460x320 तदनुसार)।

जब मैं CustomViewController निब फ़ाइल के अंदर बना सकते हैं और जाँच आईबी में "निब से देखें आकार बदलें" टैब सब कुछ ठीक काम करता है गुण।

लेकिन जब मैं initWithNibName संदेश के साथ programmmatically CustomViewController बनाने दृश्य सही ढंग से खिड़की पर तैनात नहीं है। नीचे एक खाली पट्टी है। इसकी ऊंचाई 20 पीएक्स है। मुझे लगता है कि यह स्टेटस बार ऑफसेट की वजह से है।

आईबी हैंडल करता है कि "एनआईबी से दृश्य का आकार बदलें"प्रोग्रामेटिक रूप से अनुकरण कैसे करें?

ऐसा लगता है कि आईबी UIViewController के कुछ कस्टम उप-वर्ग का उपयोग करता है। तो सवाल: "एनआईबी से आकार का आकार बदलना" कैसे लागू किया गया है?

उत्तर

1

जब मुझे यकीन है कि दृश्य पूरे स्क्रीन को शामिल किया गया बनाना चाहते हैं, मैं कुछ इस तरह करते हैं:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear:animated]; 
    [[self view] setFrame:[[UIScreen mainScreen] bounds]]; 
} 

एक हैक की तरह Feels, तो मैं केवल एक अंतिम उपाय के रूप में यह करते हैं, जब मैं यह कर सकते हैं ' अन्यथा व्यवहार करने के लिए दृश्य प्राप्त नहीं करें :)

+0

कोशिश की, लेकिन यह मेरे लिए काम नहीं करता है। नीचे एक ही पट्टी दिखाई देती है। – alexey

+1

[[स्वयं दृश्य] सेटफ्रेम: CGRectMake (0, 20, 320, 480)]; यह काम करता है, लेकिन किसी तरह की हार्डकोडिंग की तरह दिखता है। [[यूआईस्क्रीन मुख्य स्क्रीन] सीमाएं]] रिटर्न (0, 0, 320, 480)। – alexey

+0

आपको इसके बजाय एप्लिकेशनफ्रेम का उपयोग करना चाहिए: self.view.frame = {CGPointZero, [UIScreen mainScreen] .plicationFrame.size]}; – Francescu

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