これが機能することを確認できるように、これを抽象化しました。問題は、セレクターとは関係のないものですUITapGestureRecognizer
UITapGestureRecognizer *tapRecog = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(weeee)];
tapRecog.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:tapRecog];
- (void)weeee
{
NSLog(@"Two taps");
self.wee = !self.wee;
if (!self.wee) {
self.view.backgroundColor = [UIColor redColor];
NSLog(@"Wee is false");
} else {
self.view.backgroundColor = [UIColor whiteColor];
NSLog(@"Wee is true");
}
}
それをプロジェクトに追加すると( のBOOL
プロパティを含めてwee
に設定するとviewDidLoad
)、ダブルタップするたびに背景色が変わります。
コードに関しては、いくつかのブレークポイントを設定し、設定されている値と設定されている値を把握することをお勧めします。どこかで、あなたが期待していたように起こっていないことがあります。たとえば、isTorchActive
決して true でない場合は、常に白に切り替わります。どこに設定しているのかわかりませんが、おそらくそれが問題です。