2011年12月11日日曜日

UIImagePickerControllerの使い方(3)

撮影処理中は、画面の回転が検知されない。実際には
- (void)willAnimateRotationToInterfaceOrientation:が呼び出されない。
.view.frameも変化しない。

カメラ自体を横向きに出来ても、画素そのものは回転しないからであろう。
写真アプリで画面を横にしてもボタンの(方向は変わるが)位置は変わらないのはそのためである。

しかし、強制的に回転処理を作り出すことは出来る。
回転に対する通知を登録し、それを受信してビューに細工すればいい。

        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(orientationChanged:)
                                                     name:UIDeviceOrientationDidChangeNotification
                                                   object:nil];
        - (void)orientationChanged:(NSNotification *)notification

ただ、回転処理をOSに代わって行う必要があるため、かなり面倒である。
ラベルは、文字列には縦書きがないため基本的に使えないし、
アイコンを使うなら回転したアイコンを用意する必要がある。
実はこれをうまく処理する方法もある。Viewを回転させれば良いのである。

UIKitはよく出来ていてViewを回転させると、その上にある各要素の座標も適宜変換してくれる。だから、ボタンなども、回転後の位置でちゃんと効く。

具体的な方法は省略。
少しは自分で調べよう、と言うことで。







0 件のコメント:

コメントを投稿