2012-01-16 12 views
3

私のアプリには、カメラコントロールを除いたUIImagePickerを表示する以下のコードがあります。私はNOに設定showsCameraControlsを削除する場合UIImagePickerからカメラコントロールを削除する - フルスクリーンまでスケールアップする方法 - iPhone/iPad

#define CAMERA_SCALAR 1.32 

@implementation CameraViewController 

- (id)init { 
// Remove standard controls from UIImagePicker and make full screen 
if (self = [super init]) { 
    self.sourceType = UIImagePickerControllerSourceTypeCamera; 
    self.showsCameraControls = NO; 
    self.navigationBarHidden = YES; 
    self.toolbarHidden = YES; 
    self.wantsFullScreenLayout = YES; 
    self.cameraViewTransform = CGAffineTransformScale(self.cameraViewTransform, 1, CAMERA_SCALAR);   
} 
return self; 
} 

は当初、私はコントロールがされていた画面上の黒いバーを得ました。これを相殺するために、self.cameraViewTransform行に追加してビューを拡大しました。

これは動作しますが、画像が歪みます。私がしなければならないことは、幅と同じ比率で高さをスケールすることです。

誰もがこれを行うための最善の方法について私に助言することはできますか?

ありがとうございます!私はあなたの質問を誤解することができるが、同様に幅を拡張するために、あなたは

self.cameraViewTransform = CGAffineTransformScale(self.cameraViewTransform, CAMERA_SCALAR, CAMERA_SCALAR); 

代わりの

self.cameraViewTransform = CGAffineTransformScale(self.cameraViewTransform, 1, CAMERA_SCALAR); 

しかし、もちろん、これはカメラビューの側面を推進することができます

答えて

1

画面外。

原則として、この問題の原因はスクリーン/カメラのアスペクト比の違いであるため、この場合は最善の選択肢がないと考えられます(カメラが全画面で表示するものを正確に示します)。あなたはビューの一部を見逃すか、ビューを歪ませる必要があります、私の考えです。

+0

ありがとうバリー - それは私が思ったものです。 1.32は使用するのに最適なスカラー値ですか、それともより厳密なスカラー値ですか? – GuybrushThreepwood

+0

私は(Pro iOS5 Augmented Reality by Kyle Roche)の本で、1.3を使用しました。 – barley

+0

ありがとう - 数学がこれの背後にあるのだろうか?スカラーは56/480ではないはずですか? (56はコントロールの幅です)。 Wierd。 – GuybrushThreepwood

関連する問題