आप दृश्य नियंत्रक के फ्रेम को संशोधित कर सकते हैं, लेकिन आप UIViewController के -presentModalViewController उपयोग कर रहे हैं: एनिमेटेड: विधि, दृश्य के पीछे एक बार अपने मॉडल को देखने के स्क्रीन पर एनिमेट समाप्त हो गया है उतार दिया जाएगा (यह मान लिया गया है आप एक आईफोन पर हैं) और आपको एक सफेद स्क्रीन दिखाई देगी जहां आपका पृष्ठभूमि दृश्य होना चाहिए। आईओएस मानता है कि आपका मोडल व्यू कंट्रोलर एक पूर्ण-स्क्रीन दृश्य नियंत्रक होगा, और स्मृति को सहेजने के लिए अन्य दृश्य को डंप करेगा।
यदि आप वास्तव में स्क्रीन के हिस्से पर एक दृश्य दिखाना चाहते हैं, तो आपको इसके बजाय UIView (कोई UIViewController) को अपने वर्तमान UIViewController के दृश्य में सबव्यूव के रूप में जोड़ना चाहिए, और उसके बाद इसे स्वयं स्क्रीन पर एनिमेट करें। मुझे लगता है कि कुछ इस तरह अपने UIViewController वर्ग में काम करेगा उस दृश्य पेश करेंगे: UIView एनीमेशन ब्लॉक से पहले
myHalfView.alpha = 0.0;
की स्थापना करके
// Add the view as a subview and position it offscreen just below the current view
UIView *myHalfView = [[UIView alloc] initWithFrame:someAppropriateFrame];
[self.view addSubview:myHalfView];
CGRect offScreenFrame = myHalfView.bounds;
offScreenFrame.origin = CGPointMake(0.0, CGRectGetMaxY(self.view.frame));
// Now animate the view upwards
[UIView beginAnimations:nil context:nil];
// Move the view upwards the height of your sliding view so it's entirely onscreen
myHalfView.center = CGPointMake(myHalfView.center.x, myHalfView.center.y - myHalfView.bounds.size.height);
[UIView commitAnimations];
[myHalfView release];
बोनस अंक के लिए, आप दृश्य फीका कर सकता है, और सेटिंग
myHalfView.alpha = 1.0;
केंद्र संपत्ति को एनिमेट करने के बाद ब्लॉक के अंदर।
जब आप पूरा कर लेंगे, तो आप कुछ ऐसा कर सकते हैं लेकिन दृश्य ऑफस्क्रीन को स्लाइड करने के विपरीत में। जब आप दृश्य को स्क्रीन से ढलते हैं तो आप UIView एनीमेशन ब्लॉक में एनीमेशनडिडस्टॉप चयनकर्ता को अधिसूचित कर सकते हैं ताकि आप इसे दृश्य पदानुक्रम से हटा सकें।
एक सौंदर्य दृष्टिकोण से, आपको यह भी सावधान रहना चाहिए कि दृश्य स्लाइड होने के बाद आप इसे कैसे करते हैं, मानक व्यवहार है, और यदि आपका दृश्य सामान्य दृश्य जैसा दिखता है लेकिन आधा रास्ते बंद हो जाता है, तो उपयोगकर्ता भी महसूस कर सकते हैं (यहां तक कि संक्षेप में) कि ऐप जमे हुए है। वे इसे समझ लेंगे, लेकिन सावधानी से संभाले जाने पर यह आपके ऐप के बारे में एक बुरा अनुभव छोड़ देगा। मुख्य रूप से, मैं समझने में सहायता करता हूं कि क्या हो रहा है, यह समझने में सहायता के लिए मैं आपके दृश्य के शीर्ष पर एक यूएनएविगेशन नियंत्रक समेत मानक पूर्ण-स्क्रीन संकेतों का उपयोग करने से बचूंगा। आईफोन पर आधा चादरें यूआईएक्शनशीट्स हैं, इसलिए उस दिशा में सोचें।
इससे यह आईपैड पर काम करता है। –
+1, अच्छा समाधान! बस एक त्वरित: आखिरी पंक्ति में बाएं ब्रैकेट "[" गायब है। – pille
अच्छी पकड़, धन्यवाद! – atticus