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);
}
用/我运行项目:
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 次 | 
| 最近记录: |