0

最新の SDK を使用して iOS アプリケーションを開発しています。

私のアプリは、横向きの右向きのみをサポートし、View Controller は 1 つしかありません。利用可能な唯一の向きの変更を設定しますmyProject-info.plist

横向きの右向きのみをサポートしているのに、このコードが縦向きモードのビューのログを出力する理由を理解しようとしています。

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
    UIView *videoView = self.videoPreviewView;
    NSLog(@"Video frame: %@", NSStringFromCGRect(videoView.frame));
}

コンソール出力:

Video frame: {{0, 0}, {320, 568}}

AVCaptureVideoPreviewLayerフレームを設定する必要がありますが、それを行うとviewWillAppear:ポートレートの値が得られますが、orientation値はランドスケープです。

向きが横向きに変わったときにトリガーされるイベントなどはありますか?

アプリの向きが既定の向きに変わるのはいつですか?

4

2 に答える 2

0

行を追加する場合:

[[NSNotificationCenter defaultCenter] addObserver:selfセレクター:@selector(orientationChanged)名前:UIDeviceOrientationDidChangeNotificationオブジェクト:nil];

-(void)orientationChanged;その後、向きが変更されるたびにメソッドが呼び出されます。次に、次のようなことを行うことができます。

-(void)orientationChanged {
    if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation) {
        //device is portrait;
    }
    else {
        //device is landscape;
    }
}

次に、これを使用して、ビューのレイアウトと方向に基づいたセットアップを決定できます。

編集:statusBarのorientationによって返される方向がUIDeviceOrientationLandscapeLeft / LandscapeRight / Portrait/PortraitUpsideDownと等しいかどうかを確認することもできます。

于 2013-03-19T07:52:39.157 に答える
0

xCode に移動し、画面の上部にあるプロジェクト名をクリックします (その下に xcode ロゴがあります)。次に、iPhone/iPad の開発情報を表示し、ユーザーが使用できるようにする方向を選択します:)

于 2013-03-19T07:37:57.090 に答える