ここに、iPhone にカメラ フラッシュがあるかどうかを確認するコードがあります。次に、次のコードを使用してスイッチがオンになっているかどうかを確認します。
if(switch1.on){
}
このコードがなくてもライトは正常に点灯し、このコードも試しました:
if(!(switch1.on)){
}
これにより、カメラのフラッシュが正常にオンになりますが、スイッチがオフに設定されている場合でもオンになります
ここに私の完全なコードがあります:
-(IBAction)torchon:(id)sender{
AVCaptureDevice *flashlight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([flashlight isTorchAvailable] & [flashlight isTorchModeSupported:AVCaptureTorchModeOn]) {
BOOL success = [flashlight lockForConfiguration:Nil];
if(success){
if(switch1.on){ //// or (!(switch1.on))
on.hidden = YES;
[UIScreen mainScreen].brightness = 1.0;
[flashlight setTorchMode:AVCaptureTorchModeOn];
[flashlight unlockForConfiguration];
}
}
}
}
任意の助けをいただければ幸いです
**EDIT:**
これは、スイッチの値が変更されたときに ibactions を使用してスイッチを no に設定するコードです。このコードは正常に動作します:
-(IBAction)switch1{
if (switch1.on) {
switch1.on = YES;
switch2.on = NO;
} else{
switch2.on = YES;
switch1.on = NO;
}
}
-(IBAction)switch2{
if (switch2.on) {
switch2.on = YES;
switch1.on = NO;
} else{
switch1.on = YES;
switch2.on = NO;
}
}
答え
最初にブールを追加します。
bool yes;
次に、そのブール値をviewdidload
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
yes = YES;
}
その後、ibaction が呼び出されたときに YES に設定し、スイッチがオフになったら NO に設定します。
-(IBAction)switch1{
if (swich1.on) {
swich1.on = YES;
swich2.on = NO;
yes = YES;
}
}
-(IBAction)switch2{
if (swich2.on) {
swich2.on = YES;
swich1.on = NO;
yes = NO;
}
}
最後に、if ステートメントが次のようになるように一緒if(switch1.on){}
に変更する必要があることを確認する場所:if(yes==YES){}
-(IBAction)torchon:(id)sender{
AVCaptureDevice *flashlight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([flashlight isTorchAvailable] & [flashlight isTorchModeSupported:AVCaptureTorchModeOn]) {
BOOL success = [flashlight lockForConfiguration:Nil];
if(success){
if(yes==YES){
on.hidden = YES;
[UIScreen mainScreen].brightness = 1.0;
[flashlight setTorchMode:AVCaptureTorchModeOn];
[flashlight unlockForConfiguration];
}
}
}
}