2016-11-02 10 views
2

У меня реализована камера наложения в приложении. камера наложения, работающая хорошо в iOS 9. но iOS 10 cameraViewTransform не работает, как решить эту проблему. пожалуйста, направляйте меня. БлагодаряUIImagePickerController cameraViewTransform не работает в iOS 10

мой рабочий код

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); 

обновление

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]; 

ответ

0

Попробуйте это:

У меня была та же проблема, ранее в IOS 9.3 также. Вот код, который я использовал

//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); 
     } 

Надеюсь, что это поможет. Для получения дополнительной информации: UIImagePickerController's cameraViewTransform is ignoring 'scaling' and 'translation' on iOS 10 beta

+0

спасибо, я проверю и обновит вас @ Jamshed Alam –

+0

ok. сообщите мне, если вы снова столкнетесь с проблемой. –

+0

Я использовал ваш код, но все еще не работал @ Jamshed Alam –

1

iOS 10.2 исправляет эту проблему! Теперь вы можете использовать свойство cameraViewTransform, прежде чем снова представить камеру.

 Смежные вопросы

  • Нет связанных вопросов^_^