【发布时间】:2020-07-08 19:10:30
【问题描述】:
我可以用一个按钮打开手电筒,用另一个按钮将其关闭。但我只想用一个按钮来完成。但是,我没有允许我使用 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 方法。如果建议的方法尽可能简单,我也很感激,我认为我现在使用手电筒的方式过于复杂。
【问题讨论】:
-
我想到了一个 UISwitch,这能满足你的要求吗?
-
那很好,但我如何在工具栏覆盖上制作它?请记住,我必须以编程方式进行。
-
啊,我有个更好的主意。如果您在课堂上创建了一个计数器怎么办/关闭代码。这样您就可以删除其他按钮。让我知道这是否适合您,我可以将其添加为您接受并解决此问题的答案。
-
理论上听起来很棒,但我将如何创建计数器。我明白你在说什么,但你能用我放在这里的代码来演示吗?
-
请给我一秒钟的时间写下来作为答案,我会做一些假设,所以如果您的情况有什么不准确的地方,请告诉我。
标签: ios