2011-12-02 6 views
8

मेरे आईफोन एप्लिकेशन में मेरे पास फोटो लेने के लिए UIImagePickerController है। मैंने सभी डिफ़ॉल्ट कैमरा नियंत्रण छुपाए हैं और UIIiewPickerController में CameraOverLayView के रूप में दो बटन के साथ UIView जोड़ा है। मेरा आवेदन हमेशा लैंडस्केप मोड में चलाया जाता है। कैमरा केवल लैंडस्केप मोड लॉन्च कर रहा है। अब, कैमराऑवरलेव्यू केवल लैंडस्केप बाएं तरफ है, लैंडस्केप टू राइट में नहीं बदला गया है। डिवाइस अभिविन्यास बदलते समय मैं कैमरा ओवरव्यू व्यू लैंडस्केप मोड बाएं और दाएं कैसे बदल सकता हूं? कृपया इसे ठीक करने में मेरी मदद करें। यह मेरे ऐप में बड़ी समस्या है। इस कोड को वामकैमरे ओवरलेव्यू ओरिएंटेशन परिदृश्य को बाएं और दाएं आईफोन कैसे बदलें?

imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 117.81); 

Overlayview लैंडस्केप मोड में पकड़ और इस कोड को लैंडस्केप मोड में cameraoverlayview सही GAffineTransform को बदलने = self.view.transform पकड़;

transform = CGAffineTransformRotate(transform, (M_PI/2.0)); 

    imgpicker.cameraOverlayView.transform = transform; 

मैं इस तरह UIInterfaceOrientation तरीकों में इन कोड का उपयोग,

UIInterfaceOrientation orientation= [[UIApplication sharedApplication] statusBarOrientation]; 
    if (orientation == UIInterfaceOrientationLandscapeLeft) 
    { 
     imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 117.81); 
    } 
    else if (orientation == UIInterfaceOrientationLandscapeRight) 
    { 
     CGAffineTransform transform = self.view.transform; 
      transform = CGAffineTransformRotate(transform, (M_PI/2.0)); 
     imgpicker.cameraOverlayView.transform = transform; 
    } 

लेकिन, इन मेरी मदद नहीं कर रहे हैं। जब मैं डिवाइस अभिविन्यास परिदृश्य को बाएं और दाएं घुमाता हूं, तो कैमरा ओवरलेव्यूव बदल नहीं रहा है। क्या आप मेरी समस्या को ठीक कर सकते हैं? धन्यवाद।

+0

किसी ने अभी तक इसे हल किया है? –

+0

समाधान के लिए दोस्त धन्यवाद! –

+0

@JayQ .: क्या आपने अभी तक इसे हल किया है? –

उत्तर

16

सभी के लिए धन्यवाद। मैंने अपने आप से कैमरा ओवरले व्यू अभिविन्यास समस्या हल कर दी है। मैंने अपने प्रश्न में उल्लिखित एक ही कोड का उपयोग किया है। बस मैंने अभिविन्यास परिवर्तनों के लिए UIDeviceOrientation अधिसूचना जोड़ा है। कृपया नीचे दिए गए कोड को ढूंढें,

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


- (void) orientationChanged:(NSNotification *)notification 
{ 
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 
if(orientation == UIDeviceOrientationLandscapeLeft) 
     {     
      CGAffineTransform transform = self.view.transform; 
      transform = CGAffineTransformRotate(transform, (M_PI/2.0)); 
      imgpicker.cameraOverlayView.transform = transform; 
     } 
     else if(orientation == UIDeviceOrientationLandscapeRight) 
     { 
      imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity,117.81); 
     } 
} 

मैंने अभी भी अपने कोड में अतिरिक्त रूप से यह विधि जोड़ा है। ताकि जब उपयोगकर्ता डिवाइस अभिविन्यास बदलता है तो यह विधि कैमरा ओवरले व्यू के अभिविन्यास को कॉल और बदल देगी। कृपया इस विधि के अंदर अपनी स्थितियों की जांच करें अन्यथा ऐप क्रैश हो जाएगा। धन्यवाद।

+1

मैं इसका उपयोग कर रहा हूं और मेरा ओवरले सही ढंग से लाइन नहीं करता है। यह हमेशा बहुत दूर या दाएं है। – zakdances

+0

@ युवराज: हाय ... आईफोन 4 का उपयोग कर रहा हूं और क्या आप मुझे अभिविन्यास के लिए सटीक रोटेशन कोड बता सकते हैं। मैं इसे घुमाने में सक्षम हूं, लेकिन बटन बहुत दूर या बहुत दूर संरेखित हैं। –

+1

@yourfriendzak: क्या आपने इसके लिए समाधान निकाला था? यदि हां, तो क्या आप मेरी मदद कर सकते हैं? –

संबंधित मुद्दे