3秒後にコントロールボタンを非表示にする必要があるアプリに取り組んでいるので、NSTimerを使用してコードを記述し、Touchが開始されましたが、問題は、タイマー以外のボタンをもう一度タッチすると、タイマーがリセットされないことです。タッチの例をドラッグのように動かします。
ドラッグまたはタッチを移動すると、タイマーがリセットされますが、リセットされません。
この実装は、他の領域を継続的にタッチすると機能することがわかりました(ただし、コントロールボタンは機能しません)。コントロールボタンを継続的にタッチすると、3秒後に非表示になります。この問題の解決方法。ボタンクリックでもイベントを発生させたい。
編集済み私は自分の問題を自分で解決します。ボタンクリックセクターにこのコードを追加しましたが、機能します。
すべてのサポートに感謝します
if(screenTimer)
{
[screenTimer invalidate];
screenTimer = nil;
screenTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(turnOffScreen) userInfo:nil repeats:NO];
}
これが私のコードです
// Touch began for touch event.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if(screenTimer)
{
[screenTimer invalidate];
screenTimer = nil;
}
mode1View.hidden=NO;
screenTimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(turnOffScreen) userInfo:nil repeats:NO];
}
- (void)turnOffScreen{
NSLog(@"TURN OFF SCREEN");
if(screenTimer!=nil)
{
mode1View.hidden=YES;
}
}
どんな助けでも大歓迎です。ありがとうございました