मैं ने वही समस्या जब iOS5 पर अपने ऐप का परीक्षण सामना करना पड़ा था इस्तेमाल किया मुख्य दृश्य नियंत्रक में subviews के लेआउट में गड़बड़ करने के लिए करता है, तो उन्मुखीकरण बदल दिया है। जब एक मॉडल दृश्य नियंत्रक सक्रिय था।
क्या मैंने किया था मुख्य नियंत्रक में वर्तमान अभिविन्यास झंडा स्टोर करने के लिए किया गया था। यह झंडा मुख्य नियंत्रक में दो स्थानों पर अद्यतन किया जाता है
- willAnimateRotationT oInterfaceOrientation:
- viewWillLayoutSubviews (यह केवल iOS5 पर है)
मैं संग्रहीत मूल्य के साथ वर्तमान उन्मुखीकरण की तुलना द्वारा subviews समायोजित करने के लिए सभी तर्क लिखें। यदि वे अलग हैं - संग्रहीत अभिविन्यास को अपडेट करें, अपने सबव्यूज़ अपडेट करें।
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Any orientation is OK
return YES;
}
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
portrait = UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
// Code to update subview layout goes here
}
-(void)viewWillLayoutSubviews
{
BOOL isPortraitNow = UIInterfaceOrientationIsPortrait(self.interfaceOrientation);
if(isPortraitNow != portrait)
{
DLog(@"Interfaceorientation mismatch!, correcting");
portrait = isPortraitNow;
// Code to update subview layout goes here
}
}
स्रोत
2011-12-17 06:36:18
आईओएस 5 अभी भी एनडीए –