UIImagePickerController cameraViewTransform is not working in iOS 10

风格不统一 提交于 2019-12-11 00:15:46

问题


i have implemented camera overlay view in my application. camera overlay view working good in iOS 9. but iOS 10 cameraViewTransform not working how to resolve this problem. please guide me. Thanks

my working code

CGSize screenBounds = [UIScreen mainScreen].bounds.size;
CGFloat cameraAspectRatio = 4.0f/3.0f;
CGFloat camViewHeight = screenBounds.width * cameraAspectRatio;
CGFloat scale = screenBounds.height / camViewHeight;
picker.cameraViewTransform = CGAffineTransformMakeTranslation(0, (screenBounds.height - camViewHeight) / 2.0);
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, scale, scale);

update

OverlayView *overlay = [[OverlayView alloc]
                            initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
    picker =
    [[UIImagePickerController alloc] init];
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.showsCameraControls = NO;
    picker.navigationBarHidden = NO;
    picker.toolbarHidden = YES;

    // Device's screen size (ignoring rotation intentionally):
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;

    float cameraAspectRatio = 4.0 / 3.0;
    float imageWidth = floorf(screenSize.width * cameraAspectRatio);
    float scale = ceilf((screenSize.height / imageWidth) * 10.0) / 10.0;





     picker.cameraViewTransform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);
   picker.cameraOverlayView = overlay;
    picker.allowsEditing = NO;

    UIPinchGestureRecognizer *pinchRec = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoom:)];
    [overlay addGestureRecognizer:pinchRec];
    overlay.image =image;
    [self.navigationController presentViewController:picker animated:NO completion:nil];

回答1:


iOS 10.2 fixes this issue! You can now use the cameraViewTransform property before presenting the camera again.




回答2:


Try this:

I had the same problem earlier in IOS 9.3 also. Here is the code i used

//transform values for full screen support
#define CAMERA_TRANSFORM_X 1
#define CAMERA_TRANSFORM_Y 1.12412    

        if (IS_IPAD)
            CGAffineTransformScale(objImagePickerController.cameraViewTransform, CAMERA_TRANSFORM_X,  CAMERA_TRANSFORM_Y);
        else if (IS_IPHONE_5_Land||IS_IPHONE_4_Land||IS_IPHONE_6_Land||IS_IPHONE_6_PLUS_Land)
        {
            objImagePickerController.cameraViewTransform = CGAffineTransformScale(CGAffineTransformIdentity, 2, 2);
        }

Hope this helps. For more help: UIImagePickerController's cameraViewTransform is ignoring 'scaling' and 'translation' on iOS 10 beta



来源:https://stackoverflow.com/questions/40374623/uiimagepickercontroller-cameraviewtransform-is-not-working-in-ios-10

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!