ios - 使用 AVCaptureDevice 时重置 UI 开关

标签 ios objective-c cocoa-touch

我有一个 UISWitch 默认位置设置为 off

用户可选择将开关设置为on,我如何通过另一个按钮/操作将该开关重新关闭。

- (IBAction)switchToggled:(id)sender {

if (_toggle.on){


  AVCaptureDevice *backCamera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ( [backCamera isTorchAvailable] && [backCamera isTorchModeSupported:AVCaptureTorchModeOn]  )
{
    BOOL success = [backCamera lockForConfiguration:nil];
    if ( success )
    {
        [backCamera setTorchMode:AVCaptureTorchModeOn];
        [backCamera unlockForConfiguration];
      }
    }
}

else {

    AVCaptureDevice *backCamera = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ( [backCamera isTorchAvailable] && [backCamera isTorchModeSupported:AVCaptureTorchModeOn]  )
    {
        BOOL success = [backCamera lockForConfiguration:nil];
        if ( success )
        {
            [backCamera setTorchMode:AVCaptureTorchModeOff];
            [backCamera unlockForConfiguration];
        }
    }

}

通过 ui 按钮重置开关状态:

  - (IBAction)toggledOffSwitch:(id)sender {
     _toggle.on = NO; 
    }         

  - (IBAction)toggledOffSwitch:(id)sender {
  [_toggle setOn:NO];
  [_toggle setEnabled: NO];
   _torch.enabled = NO;
   _torch.on = NO;

  }

好像没有做

更新了更多代码

最佳答案

您确定在 Xcode 中连接了您的 - (IBAction)toggledOffSwitch:(id)sender 操作吗?

关于ios - 使用 AVCaptureDevice 时重置 UI 开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851742/

相关文章:

ios - 如何使用 NSUserDefaults 与 Today 扩展共享数据(自定义对象数组)?

ios - xcode, UIScrollView 保持循环滚动动画

ios - UITableViewCell 仅在滚动时加载内容

objective-c - 如何通过辅助功能 API 获取当前选定文本的全局屏幕坐标。

objective-c - 使用 SBJSON 解析 Objective-C 中的 JSON

objective-c - 在保持宽高比的情况下将 CGSize 调整到最大

iphone - 如何确定 NSString 是否基于拉丁语?

ios - UITableView 编辑模式阻止单元格重新分配并减慢 dequeueReusableCellWithIdentifier

ios - 当用户与 iAd Swift 交互时暂停游戏

ios - 在不显示选项卡栏的情况下执行到另一个导航 Controller 的转场