我刚刚完成了斯坦福大学使用 AVFoundation 的 iPhone 课程。那节课上,助教让我们制作了一个显示视频的应用程序,然后通过人脸识别将太阳镜戴在脸上。所以我想连接几个开关和滑块来做不同的事情。第一个是改变色调过滤器值的滑块。然后我想切换是否显示太阳镜。但开关不会关闭太阳镜。虽然开关有效。我在属性中声明了一个 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)然后隐藏眼镜或展示它们。但是,如果您将开关关闭,这不会使眼镜消失。