2011-12-07 6 views
0

オーバレイビューでカスタムボタン(UIButton)でカメラをカスタマイズしました。私のiPhoneアプリケーションは風景モード(左右)でのみ動作します。さて、私のカメラオーバーレイビューは、iPhone 3GSでは左右の向きが完全に変わりますが、iPhone4では明確に動かないのです。 ios5では、私が(右 - >左/左 - >右)方向を変えれば、完璧に起動するランドスケープモード(右/左)のオーバーレイビューでカメラを起動すると、オーバーレイビューは完全にフレームサイズを変更しないUIView(CameraOverlayView)、UIButtonのフレームサイズが変化しています。どうすれば修正できますか?この問題を解決するのを手伝ってください。私の友人が私の問題を解決してくれることを願っています前もって感謝します。ここで私が使用したコードを添付しました。カメラのオーバーレイビューは、iPhone4の横向きの向き(左右)を変更しませんか?

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 

if(orientation == UIDeviceOrientationLandscapeLeft) 
{ 
    CGAffineTransform transform = self.view.transform; 
    transform = CGAffineTransformRotate(transform, (M_PI/2.0)); 
    imgpicker.cameraOverlayView.transform = transform; 
    NSLog(@"Orientation Landscape Left"); 
} 
else if(orientation == UIDeviceOrientationLandscapeRight) 
{ 
    imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, 117.81); 
    NSLog(@"Orientation Landscape Right"); 
} 

このコードはiPhone#GS(ios4)でもうまく動作しますが、iPhone4(ios5)ではうまく動作しません。誰でもこの問題を解決するのを助けてくれますか?

答えて

2

ありがとう、私の友人。私はこの問題を自分で解決しました。私はちょうどカメラオーバーレイビュー上の完全なビューをカバーするようにUIViewに境界を設定し、私は私の質問に記載された上記のコードを試してみました。

 cameraview.bounds = CGRectMake(0.0, 0.0, 480.0f, 320.0f); 

ので、私はカメラの打ち上げの冒頭にこのコードをチェックして、

UIInterfaceOrientation orientation= [[UIApplication sharedApplication] statusBarOrientation]; 
    if (orientation == UIInterfaceOrientationLandscapeLeft) 
    { 
     imgpicker.cameraOverlayView.transform = CGAffineTransformRotate(CGAffineTransformIdentity,117.81); 
    } 
    else if (orientation == UIInterfaceOrientationLandscapeRight) 
    {   
     CGAffineTransform transform = self.view.transform; 
     transform = CGAffineTransformRotate(transform, (M_PI/2.0)); 
     imgpicker.cameraOverlayView.transform = transform; 
    } 

はこの後、私はまた、UIDeviceOrientation通知でこの状態を確認しました。今、私のアプリは魅力的な仕事です。ありがとう。

+0

私はカスタムカメラを作成し、ポートレートモードではライブ画面が正常に読み込まれます。しかし、私はそれをランドスケープモードに変更すると、コンソール "CGAffineTransformInvert:singular matrix"でこのエラーが発生します。私はライブスクリーンの向きの変更に自動サイズ調整マスクを使用しようとしましたが、それは助けにはなりません。 –

+0

こんにちは...私はオリエンテーションを固定しました。私も以前に直面した同じ問題に直面しています。私の問題で私を助けることができますか? –

関連する問題