एक्सकोड 4.2.1 आईपैड आईओएस 5.0.1 का उपयोग करके, एक नया "सिंगल व्यू" आईपैड प्रोजेक्ट बनाएं। नियंत्रक में, जोड़ें:रोटेशन के बाद UIView निर्देशांक स्वैप किए गए हैं लेकिन UIWindow नहीं हैं?
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
- (void) dumpView: (UIView *) view {
CGRect frame = view.frame ;
CGRect bounds = view.bounds ;
CGPoint center = view.center ;
NSLog(@"view [%@]:%d frame=%@ bounds=%@ center=%@"
, NSStringFromClass(view.class)
, [view hash]
, NSStringFromCGRect(frame)
, NSStringFromCGRect(bounds)
, NSStringFromCGPoint(center)) ;
}
- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation) fromInterfaceOrientation {
NSLog(@"INViewController.didRotateFromInterfaceOrientation: %d to %d", fromInterfaceOrientation, self.interfaceOrientation) ;
[self dumpView: self.view] ;
[self dumpView: self.view.superview] ;
}
भागो यह डिवाइस बारी बारी से और आप मिल जाएगा:
INViewController.didRotateFromInterfaceOrientation: 2 to 4
view [UIView] bounds={{0, 0}, {1024, 748}} center={394, 512}
view [UIWindow] bounds={{0, 0}, {768, 1024}} center={384, 512}
दूसरे शब्दों में, UIView अपने निर्देशांक "परिदृश्य को लगा दिया" के रूप में उम्मीद है, लेकिन इसकी माता-पिता UIWindow अभी भी पोर्ट्रेट मोड में होने का दावा ...
इसके अलावा, UIView आकार थोड़ा गलत हो रहा है: y समन्वय जो होना चाहिए 20 0 में है पर ...
किसी क जानता है इस मतलब से?
समझ में आता है। धन्यवाद। संयोग से, मुझे यह दिखाने के लिए भी धन्यवाद कि जीडीबी वास्तव में इंटरैक्टिव रूप से उपयोग किया जा सकता है :-) – verec
@rob यह छोड़कर कि UIView.frame के लिए रेफ डॉक्स कहते हैं: चेतावनी अगर ट्रांसफॉर्म प्रॉपर्टी पहचान ट्रांसफॉर्म नहीं है, तो इस प्रॉपर्टी का मान अपरिभाषित है और इसलिए अनदेखा किया जाना चाहिए। क्या आप इसे विस्तार से समझा सकते हैं? मान लें कि मैं इसे एक ओवरले के रूप में स्लाइड करने के लिए घुमावदार दृश्य के फ्रेम को एनिमेट करना चाहता हूं। – tribalvibes
जब मैं 'ट्रांसफॉर्म' पहचान नहीं करता हूं तो मैं अपने कोड में 'फ्रेम' पर भरोसा नहीं करता हूं। हालांकि, 'फ्रेम' विधि हमेशा '[स्वयं कन्वर्ट्रैक: self.bounds toView: self.superview]' वापस आती है और इसलिए डीबगिंग के दौरान यह उपयोगी होता है। –