カスタムカメラオーバーレイiPhone SDKを使用した場合画像移動&リサイズ機能していない3.1+

StackOverflow https://stackoverflow.com/questions/1990573

  •  22-09-2019
  •  | 
  •  

質問

私は、カメラの画面にオーバーレイを追加する古い学校の方法、およびその加工された罰金を使用するために使用されます。 3.1が出てきたので、Appleは私がオーバーレイを追加するためにAPIを使用することを主張しています。私はすぐに仕事にオーバーレイを得たが、それは私がカスタムオーバーレイを使用する場合は、移動&リサイズ画面が応答しないようです、私は唯一の使用や再受験することができ、実際にサイズを変更&移動することはできません。私が使用していたコードは以下の通りです。私はいくつかのバリエーションを試してみましたが、実際に移動&リサイズを可能にします唯一のものは、カスタムオーバーレイビューを追加する行を削除することです。

任意のアイデア?

UIImage *image = [UIImage imageNamed:@"camera-template-long.png"];
UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] ;
imgView.image = image;

UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
overlayView.opaque = NO;
[overlayView addSubview:imgView];

UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;        
picker.showsCameraControls = YES;
picker.cameraOverlayView = overlayView;
picker.delegate = self;
picker.allowsEditing = YES;

[self presentModalViewController:picker animated:YES];
役に立ちましたか?

解決 2

あなたが入力を扱うからオーバーレイビューを停止する[overlayView setUserInteractionEnabled:NO];を使用したら、

全体の問題が消えます。

他のヒント

設定allowsEditing / NOへshowsCameraControls特性の両方が、cameraOverlayViewに元のビューを作成し、利用takePicture方式ます。

はその後、imagePickerController:didFinishPickingMediaWithInfo:は直接呼び出されます。

<時間>

次のコードを試してみてください

- (void)foo {
  UIImagePickerController *controller = [[[UIImagePickerController alloc] init] autorelease]; 
  controller.sourceType = UIImagePickerControllerSourceTypeCamera; 
  controller.cameraOverlayView = self.cameraOverlay; 
  [self performSelector:@selector(moveOverlayViewToSublayer:) withObject:controller afterDelay:0.1f]; 
  controller.delegate = self; 
  [self presentModalViewController:controller animated:YES]; 
}
- (void) moveOverlayViewToSublayer:(UIImagePickerController*)controller { 
  CALayer *aLayer = self.cameraOverlay.layer.superlayer; 
  controller.cameraOverlayView = nil; 
  [aLayer addSublayer:self.cameraOverlay.layer]; 
}

私はそれがうまくいくことを願っています。

http://www.techques.com/質問/ 1-10178214 / cameraOverlayView-防止-編集-で-allowsEditingする

これは私のために完璧に動作します。私は無効userInteractionEnabledにしようとしたが無駄インチ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top