0

UIImagePickerControllerを使用して私のアプリでカスタムカメラを実装しました。私は以前this transformationを適用することにより、カメラフルスクリーンを作った:iPhoneのフルスクリーンカメラのスケール

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
{ 
    ipc = [[UIImagePickerController alloc] init]; 
    ipc.delegate = self; 

    ipc.sourceType = UIImagePickerControllerSourceTypeCamera; 
    ipc.showsCameraControls = NO; 

    [[NSBundle mainBundle] loadNibNamed:@"SnapItCameraView" owner:self options:nil]; 
    self.overlayView.frame = ipc.cameraOverlayView.frame; 
    ipc.cameraOverlayView = self.overlayView; 
    self.overlayView = nil; 

    //For iphone 5+ 
    //Camera is 426 * 320. Screen height is 568. Multiply by 1.333 in 5 inch to fill vertical 
    CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0, 71.0); //This slots the preview exactly in the middle of the screen by moving it down 71 points 
    ipc.cameraViewTransform = translate; 

    CGAffineTransform scale = CGAffineTransformScale(translate, 1.333333, 1.333333); 
    ipc.cameraViewTransform = scale; 
    ipc.showsCameraControls = NO; 
    ipc.tabBarController.tabBar.hidden = YES; 
    ipc.allowsEditing = NO; 
    [self presentViewController:ipc animated:YES completion:nil]; 
} 

しかし、カメラは画面の上部とiPhone X.そのフラッシュの画面を埋めていませんが、下部の黒いバーがあります。

私は、画面を垂直に埋めるには1.3が間違ったスケールであると仮定します。私はカメラがiPhone X用の電話機の画面全体を埋めるようにしたいと考えています。

+0

その他@Matt:「1.3は、画面を縦方向に埋めるには間違ったスケールです」と思っています。あなたはその質問が何であるかを明確にすることができますか?あなたは問題の再現を可能にするのに十分なコードを表示していませんし、あなたが何をしようとしていると思っているのかははっきりしていません。 – matt

+0

@mattごめんなさい。私の明確化はより良いものでしたか? – Matt

+0

はい! - 私はiPhone Xを持っていないので、私はテストすることはできません。しかし、私にあなたに尋ねてみましょう:ハードコーディングされた数字を何か他のものに変更すれば(それより大きい?)、それは良いですか? – matt

答えて

1

代わりに計算することができれば、この比率はあまり意味がありません。

画面の高さ(568)をカメラビュー(426)の高さで割って1.3333を計算しました。そのロジックはXでは同じになるはずですが、すべての電話機が同じ画面サイズを共有すると仮定するのではなく、正しいパラメータを指定する必要があります。

また、この画像を変形すると、それに比例して拡大縮小するように選択した場合、画像の一部が途切れてしまうことがあります。

関連する問題