0

AVFoundation を使用するスタンフォード大学の iPhone レッスンを終えたところです。TAさんに動画を表示するアプリを作ってもらい、顔認証で顔にサングラスをかける授業でした。そこで、いくつかのスイッチとスライダーを接続して、さまざまなことをしたいと考えました。1 つ目は、色相フィルターの値を変更するスライダーです。次に、サングラスを表示するかどうかを切り替えたいと思いました。しかし、スイッチはサングラスをオフにしません。スイッチは機能しますが。プロパティでBOOLを宣言しました

@property (nonatomic) BOOL sunGlasses;  

私はそれを合成し、スイッチを次のアクションに接続しました

- (IBAction)toggleGlasses:(id)sender 
{
if (_mySwitch.on)
{
    NSLog(@"toggle is on");
    self.sunGlasses = YES;
}else {
    NSLog(@"toggle is off");
    self.sunGlasses = NO;
}
}

次に、-(void) captureOutput のメソッドの下で、色相が変更され、顔認識が顔認識部分に追加されます。

if ((faceFound) && (self.sunGlasses = YES)){
    [self.glasses setHidden:NO];
}else{
    [self.glasses setHidden:YES];
}

以前は (faceFound) だけで、メガネを隠したり見せたりしていました。ただし、スイッチをオフに切り替えても、これでメガネが消えるわけではありません。

4

2 に答える 2

4

使いました:

self.sunGlasses = YES

シングル=は割り当てです。そのプロパティの値を設定し、このステートメントがより大きな式内で使用される場合、その値はYESです。したがって、「if」条件は常に真であり、サングラスを示すブランチが常に使用されます。

等しいかどうかをテストするには、doubleequals==を使用します。

于 2012-08-04T20:21:12.150 に答える
-1

使用できます

if(self.sunGlasses){

}

を検証する

于 2014-09-30T15:31:58.213 に答える