小编Mat*_*dle的帖子

使用自定义相机覆盖更改闪光模式

我正在使用带有自定义相机覆盖视图的UIImagePickerController,并希望添加自定义按钮以在自动,开启和关闭之间切换闪光模式.这是按钮调用的方法:

- (void)didTapFlash:(id)sender
{
    if (self.imagePickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeAuto)
    {
        [imagePickerController setCameraFlashMode:UIImagePickerControllerCameraFlashModeOn];
        [self.flashButton setImage:[UIImage imageNamed:@"flashIconOn.png"] forState:UIControlStateNormal];
    }
    else if (self.imagePickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeOn)
    {
        self.imagePickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
        [self.flashButton setImage:[UIImage imageNamed:@"flashIconOff.png"] forState:UIControlStateNormal];
    }
    else if (self.imagePickerController.cameraFlashMode == UIImagePickerControllerCameraFlashModeOff)
    {
        self.imagePickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
        [self.flashButton setImage:[UIImage imageNamed:@"flashIconAuto.png"] forState:UIControlStateNormal];
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是这不起作用.一旦呈现控制器,self.imagePickerController.cameraFlashMode的值就不会改变.闪存值可以在显示之前更改,但一旦显示,它将始终返回值0(自动).奇怪的是,即使值没有改变,如果我将上面的代码更改为:

- (void)didTapFlash:(id)sender
{
    if (flashButton.tag == 0)
    {
        [imagePickerController setCameraFlashMode:UIImagePickerControllerCameraFlashModeOn];
        self.flashButton.tag = 1;
        [self.flashButton setImage:[UIImage imageNamed:@"flashIconOn.png"] forState:UIControlStateNormal];
    }
    else if (flashButton.tag == 1)
    {
        self.imagePickerController.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
        self.flashButton.tag = -1;
        [self.flashButton setImage:[UIImage imageNamed:@"flashIconOff.png"] forState:UIControlStateNormal]; …
Run Code Online (Sandbox Code Playgroud)

flash camera overlay button ios

5
推荐指数
1
解决办法
1048
查看次数

标签 统计

button ×1

camera ×1

flash ×1

ios ×1

overlay ×1