2012-10-09 11 views
18

मैं UIImagePickerController नियंत्रक के लिए कस्टम ओवरले का उपयोग कर रहा हूं, और सब ठीक काम कर रहा है। मैंने आगे और पीछे कैमरे के बीच स्विच करने के लिए बटन जोड़ा है -UIImagePickerController पीछे से सामने कैमरे से एनिमेटेड स्विच कैसे करें?

- (IBAction)changeCamera:(id)sender { 
if (self.imagePicker.cameraDevice == UIImagePickerControllerCameraDeviceRear) { 
    self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
} 
else { 
    self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
} 
} 

समस्या यह है कि स्विच एनिमेटेड नहीं है। मैं सेब कैमरा ऐप का उपयोग कर रहा हूं जो UIImagePicker के शीर्ष पर बनाया गया है, और स्विच एनिमेटेड हो रहा है। मैं यह कैसे करु?

+0

क्या आप यूआईएसविच का उपयोग कर रहे हैं? – iOS

+0

मैं UIBarButtonItem का उपयोग कर रहा हूं। स्विच के साथ मेरा मतलब है कि पीछे से सामने वाले कैमरे से एनिमेटेड, जैसे सेब ऐप में जहां यह क्षैतिज फिसल रहा है। – MegaManX

+0

पर एक नज़र डालें ['संक्रमण FromView: toView: अवधि: विकल्प: समापन:'] (http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html#//apple_ref/occ/clm/UIView/transitionFromView: toView: अवधि: विकल्प: समापन :) –

उत्तर

22

मैं आज क्या करने की कोशिश कर रहा था, और मैं इसे निम्नलिखित कोड के साथ काम कर प्राप्त करने में सक्षम था:

[UIView transitionWithView:imagePickerController.view duration:1.0 options:UIViewAnimationOptionAllowAnimatedContent | UIViewAnimationOptionTransitionFlipFromLeft animations:^{ 
      imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
     } completion:NULL]; 

मुझे आशा है कि यह जो कोई भी इस सवाल भर आता है मदद करता है।

+0

उत्तर के लिए धन्यवाद। यह सही संक्रमण प्रदान करता है जिसे मैं ढूंढ रहा हूं लेकिन कैमरे के विचारों के बीच संक्रमण अभी भी थोड़ा झटकेदार है (कैमरेडिवाइस संक्रमण से पहले सेट नहीं है)। मुझे एनीमेशन अवधि बढ़ाने के लिए संकोच नहीं है क्योंकि यह मान पुराने आईपैड पर अलग हो सकता है। कोई विचार? मैं उस छवि पिकर से स्क्रीन शॉट और संक्रमण लेने की सोच रहा था। –

+0

ये मेरे पास एक ही समस्या है - ट्रांसफॉर्म एक अच्छा विचार है - लेकिन ऐप्पल आपको कोई पूरा कॉलबैक नहीं देता है, इसलिए समय सटीक नहीं है। – daidai

+1

इस समाधान के साथ समस्या यह है कि यह कैमरे ओवरले व्यू को भी फ्लिप करता है, जो ऐप्पल अपने कैमरे ऐप में ऐसा नहीं करता है। – HiveHicks

3

यहाँ मामले में किसी को स्वीकार कर लिया जवाब के लिए स्विफ्ट कोड इसकी आवश्यकता है:

UIView.transitionWithView(imagePickerController.view!, duration: 1.0, options: [.AllowAnimatedContent, .TransitionFlipFromLeft], animations: {() -> Void in 
      imagePickerController.cameraDevice = .Rear 
      }, completion: nil) 

धन्यवाद पाब्लो!

+0

धन्यवाद आदमी आपने मेरा दिन बचाया! –

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