我可以用一个按钮打开手电筒,用另一个按钮将其关闭。但我只想用一个按钮来完成。但是,我没有允许我使用 bool isSelected 方法的框架。所以我对如何将两个功能合并到一个按钮中一无所知。
这是有效的代码:
-(void)onButtonPressed
{
AVCaptureDevice *flashLight = [AVCaptureDevice
defaultDeviceWithMediaType:AVMediaTypeVideo];
if([flashLight isTorchAvailable] && [flashLight
isTorchModeSupported:AVCaptureTorchModeOn])
{
BOOL success = [flashLight lockForConfiguration:nil];
if(success){
[flashLight setTorchMode:AVCaptureTorchModeOn];
[flashLight unlockForConfiguration];
}
}
}
我用它来关闭手电筒。
-(void)offButtonPressed {
AVCaptureDevice *flashLight = [AVCaptureDevice
defaultDeviceWithMediaType:AVMediaTypeVideo];
if([flashLight isTorchAvailable] && [flashLight
isTorchModeSupported:AVCaptureTorchModeOn])
{
BOOL success = [flashLight lockForConfiguration:nil];
if(success){
[flashLight setTorchMode:AVCaptureTorchModeOff];
[flashLight unlockForConfiguration];
}
}
}
我并不特别关注它的完成方式。只要手电筒在第一次轻敲时打开并在第二次轻敲时关闭,我就不会关心这种方法。
但是,我正在使用以编程方式制作的 barbuttonitems,所以请不要给我 IBAction 方法。如果建议的方法尽可能简单,我也会很感激,我认为我现在使用手电筒的方式过于复杂。