Edu*_*lho 6 iphone camera transform uiview uiimagepickercontroller
我将我的iPhone和SDK升级到iOS 4.0.1,现在我的应用程序运行方式与在iOS 3.x中运行的方式不同.
我的应用程序使用UIImagePickerController与自定义cameraOverlayView(我将在这篇文章中压制).重点是我需要在全屏模式下看到iphone相机.为了直接解决这个问题,我会提供一些代码和截图来解释发生了什么.
我创建了一个基于视图的应用程序中使用名为"CameraTransform" Xcode的模板项目,所以我得到了两个类:CameraTransformAppDelegate和CameraTransformViewController,OK!在我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);
}
Run Code Online (Sandbox Code Playgroud)
用/我运行项目:
configurePicker_FirstAttempt和configurePicker_SecondAttempt方法调用说:defaultPicker.png.configurePicker_SecondAttempt方法调用注释:configurePicker_FirstAttempt.png.configurePicker_FirstAttempt和configurePicker_SecondAttempt方法调用取消注释:configurePicker_SecondAttempt.png.注意:
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已经以某种方式改变了,也许相机控件具有不同的大小等等.
有谁有这个问题?
小智 14
ios 4.0 Magic number 1936/220 = 6.05,2 2592/6.05 = 428,480-428 = 52 52 /(428/2)= 0.24299 + 1 = 1.24299
ios 3.0 Magic number 1536/320 = 4.8 2048/4.8 = 427 480-427 = 53 53/427 = 0.121412 + 1 = 1.12412
这就是cameraresolution-screenresolution的关系
对于iOS 3.0,从顶部应用cameraViewTransform,因此您必须使用所有高度.但是在iOS4中,它是从框架的中心应用的,所以你必须使用一半的高度.而且你必须向下移动框架(52/2)以使框架保持在中心位置.
| 归档时间: |
|
| 查看次数: |
12774 次 |
| 最近记录: |