如何在UIImagePickerController的自定义控件中使用不同模式之间的切换?

时间:2011-08-11 03:21:51

标签: ios uiimagepickercontroller

picker.showsCameraControls = NO;
picker.cameraOverlayView = someView;

由于我将为showCameraControls添加一些自定义视图,那么如何在两种模式之间切换,例如相机和录制之间的iphone切换的原生app,就像我想在相机和另一个带有按钮的相机之间切换一样,我该怎么做? 帮助!

2 个答案:

答案 0 :(得分:1)

在自定义视图中,您将设置一个按钮作为目标设置按钮,它是takePicture方法。然后你会有另一个按钮或开关,或者你想要进入你的自定义模式,那里你会有一个按钮来开始/停止对齐。此按钮应具有self for target(自身作为您呈现选择器的视图控制器)和自定义toggleSnapping方法。您还需要将自己设置为图像选择器的委托,以便在拍摄每张照片时收到通知。哦,以及一个BOOL实例变量,用于跟踪捕捉当前是否处于活动状态。然后你的toggleSnapping方法看起来像这样:

- (void)toggleSnapping
{
    isSnapping = !isSnapping; // (this will reverse NO to YES and vice-versa)
    [picker takePicture]; // starts taking 1st picture, delegate will take care of rest
    if (isSnapping) {
        // configure your button to show stop icon
    } else {
        // configure your button to show start snapping icon
    }
}

如果isSnapping当前为YES,你需要实现picker的委托方法,你只需启动另一张图片:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    // save the snapped picture to the camera roll

    if (isSnapping) { // if burst mode is on, take another picture
        [picker takePicture];
    }
}

答案 1 :(得分:0)

This示例项目向您展示了如何为UIImagePickerController制作自己的自定义叠加层,以及如何使用它。有关UIImagePickerController的每个属性和方法的更多信息,请参阅here。希望有所帮助!