2013-08-26 10 views
5

के अंदर ऑटोरोटेशन का पता लगाएं मैं UIView का उप-वर्ग बना रहा हूं जिसे अभिविन्यास में परिवर्तन होने पर इसके सबव्यूव को फिर से शुरू करने की आवश्यकता है।UIView सबक्लास

यह किसी भी अतिरिक्त कोड के बिना "कहीं भी में प्लग करने के लिए" इसलिए मैं नहीं बल्कि UIViewController तरीकों पर भरोसा करते हैं autorotation

पता लगाने के लिए नहीं चाहते हैं सक्षम होने की जरूरत है जब अभिविन्यास का होता है UIView पता करने के लिए के लिए वहाँ वैसे भी है बदला हुआ?

उत्तर

9

अभिविन्यास परिवर्तन का पता लगाने के लिए इस तरह की अधिसूचना के बारे में कैसे ??

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil]; 

लेकिन इससे पहले, आपको इस तरह की सूचनाएं उत्पन्न करने के लिए पंजीकरण करने की आवश्यकता है।

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
0

मैंने पाया कि मेरे लिए यह UIDeviceOrientationDidChangeNotification तुलना में बेहतर काम:

NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("layoutControls"), name: UIApplicationDidChangeStatusBarOrientationNotification, object: nil) 

मैं भी beginGeneratingDeviceOrientationNotifications के साथ पहली पंक्ति जोड़ने के लिए जरूरत नहीं थी।