में अलग-अलग कार्य करता है मैंने अपने आईफोन और एसडीके को आईओएस 4.0.1 में अपग्रेड किया और अब मेरा ऐप आईओएस 3.x में चल रहा था जैसा ही नहीं चलता है।UIImagePickerController cameraViewTransform आईओएस 4
मेरा ऐप एक कस्टम कैमराऑवरलेव्यू (जिसे मैं इस पोस्ट में दबा दूंगा) के साथ UIImagePickerController का उपयोग करता हूं। मुख्य बिंदु यह है कि मुझे पूर्णस्क्रीन मोड में आईफोन कैमरा देखने की ज़रूरत है। सीधे समस्या पर जाने के लिए, मैं कुछ कोड और स्क्रीनशॉट रखूंगा कि क्या हो रहा है।
मैंने "कैमराट्रांसफॉर्म" नामक एक्सकोड टेम्पलेट परियोजनाओं का उपयोग करके एक व्यू-आधारित एप्लिकेशन बनाया, इसलिए मुझे दो कक्षाएं मिलीं: CameraTransformAppDelegate
और CameraTransformViewController
, ठीक है! CameraTransformViewController
के viewDidAppear
विधि में मैं निम्नलिखित कोड डाल:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
//[self configurePicker_FirstAttempt:picker]; Use this!
//[self configurePicker_SecondAttempt:picker]; Use this too!
[self presentModalViewController:picker animated:YES];
}
- (void)configurePicker_FirstAttempt:(UIImagePickerController*) picker {
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
// not needed (use defaults)
//picker.toolbarHidden = YES;
//picker.wantsFullScreenLayout = YES;
}
- (void)configurePicker_SecondAttempt:(UIImagePickerController*) picker {
// Transform values for full screen support
CGFloat cameraTransformX = 1.0;
CGFloat cameraTransformY = 1.12412;
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, cameraTransformX, cameraTransformY);
}
के साथ इस परियोजना चल रहा है/मुझे मिल गया:
- दोनों
configurePicker_FirstAttempt
औरconfigurePicker_SecondAttempt
विधि कॉल टिप्पणी की: defaultPicker.png। - केवल
configurePicker_SecondAttempt
विधि कॉल टिप्पणी: configurePicker_FirstAttempt.png। configurePicker_FirstAttempt
औरconfigurePicker_SecondAttempt
विधि कॉल असम्बद्ध: configurePicker_SecondAttempt.png।
नोट:
- आईओएस 3.x में मैं तल पर तीसरे दृष्टिकोण (दोनों तरीकों uncommented) का इस्तेमाल किया पिकर, जो "काली पट्टी" के बिना पूर्ण स्क्रीन मोड में शो था कॉन्फ़िगर करने के लिए ।
- मैंने
picker.cameraViewTransform
मूल मूल्य (स्केल किए जाने से पहले) का निरीक्षण किया और यह पहचान (अपेक्षित के रूप में) पर सेट है। picker.view.frame
स्क्रीन सीमा के (0.0, 0.0, 320.0, 480.0)- मैं (छोटा किए जाने के बाद)
picker.cameraViewTransform
करने के लिए एक अनुवाद जोड़ करने की कोशिश की पर सेट है, इस तरह:CGAffineTransformTranslate(picker.cameraViewTransform, 0.0, 20.0);
और मुझे एहसास हुआ कि वहाँ कुछ हिस्सा था कि "कैमरा दृश्य" का छुपा था (शायद यह मूल 0.0, 0.0 नहीं था), इसलिए मुझे स्क्रीन पर और अधिक "कैमरा दृश्य" मिला।
ऐसा लगता है कि नए एसडीके में यूआईएममेज पिकर कंट्रोलर कुछ तरह से बदल गया है, शायद कैमरे के नियंत्रण में कुछ अलग-अलग आकार हैं।
क्या किसी को यह समस्या है?
मुझे भी वही समस्या है और स्केलिंग के साथ टिप के लिए धन्यवाद। मैंने अनुवाद करने की कोशिश की, लेकिन ऐसा लगता है कि इससे प्रभावित नहीं होता है। यह वास्तव में अजीब बात है कि यहां क्या हो रहा है। मैं अब के लिए स्केलिंग के साथ रहना होगा। अगर किसी के पास इस समस्या का उचित उत्तर है तो हम निश्चित रूप से इसकी सराहना करेंगे। – Buju