我將iPhone和SDK升級到了iOS 4.0.1,現在我的應用程序的運行方式與在iOS 3.x中運行的方式不同。UIImagePickerController cameraViewTransform在iOS 4中的行爲有所不同
我的應用程序使用UIImagePickerController與自定義cameraOverlayView(我會壓制在這篇文章中)。重點是我需要以全屏模式查看iphone相機。爲了直接解決問題,我將提供一些代碼和屏幕截圖來解釋發生了什麼。
我使用名爲「CameraTransform」的XCode模板項目創建了一個基於視圖的應用程序,所以我得到了兩個類: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。
注:
- 使用iOS 3.x的我所使用的第三種方法(兩種方法未註釋的)來配置機械手,這是顯示在沒有「黑條」全屏模式在底部。
- 我檢查了
picker.cameraViewTransform
原始值(縮放之前)並將其設置爲Identity(如預期的那樣)。 - 的
picker.view.frame
設置爲屏幕邊界的(0.0,0.0,320.0,480.0) - 我試圖串連翻譯到
picker.cameraViewTransform
(被縮放後),就像這樣:CGAffineTransformTranslate(picker.cameraViewTransform, 0.0, 20.0);
,我意識到,有一些部分隱藏的「相機視圖」(也許它的原點不是0.0,0.0),所以我在屏幕上獲得了更多的「相機視圖」。
它看起來像在新的SDK UIImagePickerController已經改變了某種方式,也許相機控制有不同的大小os的東西。
有沒有人有這個問題?
我也有同樣的問題,並感謝與縮放技巧。我嘗試翻譯,但似乎沒有受到它的影響。這裏發生的事情真的很奇怪。 我現在堅持縮放。如果有人對此問題有適當的答案,我們肯定會感激。 – Buju 2010-08-12 17:01:46