1
写真を撮ることができるiPad2のアプリを開発しています。画像ピッカーのカスタムオーバーレイを使用します。しかし、このオーバーレイビューはデバイスの向きを検出しません。iPadカメラオーバーレイオリエンテーションの問題
私は didRotateFromInterfaceOrientation
とwillAnimateRotationToInterfaceOrientation
で試しました。しかし彼らのうちの何人かは働いていません。これがオーバーレイを作成する方法です。
@interface CameraOverlayController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
-(void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType
{
self.picker.sourceType = sourceType;
if (sourceType == UIImagePickerControllerSourceTypeCamera)
{
self.picker.showsCameraControls = NO;
if ([[self.picker.cameraOverlayView subviews] count] == 0)
{
CGRect overlayViewFrame = self.picker.cameraOverlayView.frame;
if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) {
NSLog(@"Initially Landscape and height : %f" , CGRectGetHeight(overlayViewFrame));
}
if (UIDeviceOrientationIsPortrait(self.interfaceOrientation)) {
NSLog(@"Initially Portrait and height : %f", CGRectGetHeight(overlayViewFrame));
}
self.view.backgroundColor = [UIColor clearColor];
CGRect newFrame = CGRectMake(0.0, CGRectGetHeight(overlayViewFrame) - self.view.frame.size.height - 10.0, CGRectGetWidth(overlayViewFrame), self.view.frame.size.height + 10.0);
self.view.frame = newFrame;
[self.picker.cameraOverlayView addSubview:self.view];
}
}
}
どのようにカメラのオーバーレイ内のデバイスの回転を検出できますか教えてください。
多くのお礼ありがとうございます
こんにちは、これについて詳しく説明できますか? willShowViewControllerの実装方法を教えてください。 thanks –
このwillShowViewControllerはナビゲーションコントローラの代理人です。このメソッド内ですべてのUI(navigationControllerツールバー、ボタンなど)を実装し、サブビューとしてviewControllerに追加します。これがあなたに役立つことを願っています。 – Chinthaka
@Chinthaka:こんにちは...カスタムカメラを作成し、ポートレートモードでライブ画面が正常に読み込まれます。しかし、私はそれをランドスケープモードに変更すると、コンソール "CGAffineTransformInvert:singular matrix"でこのエラーが発生します。私はライブスクリーンの向きの変更に自動サイズ調整マスクを使用しようとしましたが、それは助けにはなりません。 –