0

アプリでカメラのオーバーレイを作成しようとしています。画面にボタンを表示することには成功したのですが、ボタンのセレクターに何を設定すればいいのかわかりません。だから私は CameraOverlay と呼ばれるクラスを持っていて、それは画面にボタンを置くだけです。次に、カメラを作成し、カメラが写真を撮ったときにすべてを処理する別のクラスがあります。CameraOverlay クラスでボタンが押されたときにデバイスが写真を撮るようにするにはどうすればよいですか? CameraOverlay クラスのコードは次のとおりです。

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        //Create Button
        [self createCameraButton];

        self.backgroundColor = [UIColor clearColor];

        screenWidth = [UIScreen mainScreen].bounds.size.width;
        screenHeight = [UIScreen mainScreen].bounds.size.height;
        }
    return  self;
}

-(void)createCameraButton{
    self.cameraButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [self.cameraButton addTarget:self
           action:@selector(takePicture)
 forControlEvents:UIControlEventTouchUpInside];
    [self.cameraButton setBackgroundImage:[UIImage imageNamed:@"camera.png"]   forState:UIControlStateNormal];
    self.cameraButton.frame = CGRectMake(140, 500, 50, 50);
    [self addSubview:self.cameraButton];
}

UIImagePickerController を作成する方法は次のとおりです。

//create an overlay view instance
    CameraOverlayView *overlay = [[CameraOverlayView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];

    self.imagePicker = [[UIImagePickerController alloc]init];
    self.imagePicker.delegate = self;
    self.imagePicker.allowsEditing = NO;
    self.imagePicker.navigationBarHidden = YES;
    self.imagePicker.toolbarHidden = YES;
    self.imagePicker.wantsFullScreenLayout = YES;
    self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    self.imagePicker.videoMaximumDuration = 10;
    self.imagePicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];
    self.imagePicker.showsCameraControls = NO;
    self.imagePicker.cameraOverlayView = overlay;
    [self presentViewController:self.imagePicker animated:NO completion:nil];
4

1 に答える 1

0
    -(void) takePicture:(id)sender{
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.delegate = self;
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
        picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
        picker.showsCameraControls = NO;

        [self presentViewController:picker animated:YES
                         completion:^ {
                             [picker takePicture];
                         }];}
    }
于 2014-07-08T19:22:39.157 に答える