2015-03-02 13 views
7

मैं व्यूविल्ल ट्रांजिशन टॉइस का उपयोग कर रहा हूं यह पता लगाने के लिए कि डिवाइस कब परिदृश्य में घूम रहा है। लक्ष्य आकार के आधार पर, मैं परिदृश्य की ओर बढ़ अगर पता लगा सकते हैं और के रूप में आवश्यक मेरी लक्षण समायोजित ...आईओएस व्यूविल्लट्रांसशनटोज़ाइज और डिवाइस ओरिएंटेशन

override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) { 

    if size.width > size.height { 
     self.setOverrideTraitCollection(UITraitCollection(horizontalSizeClass: UIUserInterfaceSizeClass.Regular), forChildViewController: viewController) 
    } 
    else{ 
     self.setOverrideTraitCollection(nil, forChildViewController: viewController) 
    } 

    super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator) 
} 

हालांकि, मैं पता लगाने के लिए मेरे डिवाइस परिदृश्य-बाएँ या landscape- में संक्रमण है या नहीं सक्षम होना चाहते हैं सही। यह डिवाइस के विशिष्ट अभिविन्यास के आधार पर, मुझे विभिन्न व्यवहार या विचार बनाने की अनुमति देगा। (बायें या दायें)।

क्या यह किसी भी बहिष्कृत कार्यों का उपयोग किये बिना संभव है?

मैं स्थिति बार उन्मुखीकरण का उपयोग कर के बारे में सोचा ...

let orientation = UIApplication.sharedApplication().statusBarOrientation; 
    if(orientation == UIInterfaceOrientation.LandscapeLeft) 
    { 
     // Do something 
    } 
    else if(orientation == UIInterfaceOrientation.LandscapeRight) 
    { 
     // Do something else 
    } 

... लेकिन यह है कि मदद नहीं करता है इस 'पुराने' स्थिति उन्मुखीकरण देने के लिए प्रकट होता है क्योंकि।

मैं विशिष्ट लक्ष्य अभिविन्यास कैसे प्राप्त कर सकता हूं?

उत्तर

0

उपयोग [UIDevice currentDevice].orientation

6

जबकि के रूप में उपयोग UIViewControllerTransitionCoordinator घूर्णन आप उन्मुखीकरण प्राप्त कर सकते हैं इस प्रकार है:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { 
    super.viewWillTransition(to: size, with: coordinator) 

    // will execute before rotation 

    coordinator.animate(alongsideTransition: { (context: UIViewControllerTransitionCoordinatorContext) in 

     // will execute during rotation 
     let orientation = UIApplication.shared.statusBarOrientation 
     if orientation == .landscapeLeft 
     { 
      // Do something 
     } 
     else if orientation == .landscapeRight 
     { 
      // Do something else 
     } 
    }) { (context: UIViewControllerTransitionCoordinatorContext) in 
     // will execute after rotation 
    } 
} 
संबंधित मुद्दे