タップしたときに点滅させたいTableViewCellがあります(つまり、オフとオンを数回すばやく強調表示します)。
これまでのところ、次のようにタイマーを使用してこの機能を実装しました。
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSTimer *blinkTimer = [[NSTimer scheduledTimerWithTimeInterval:.05 target:self selector:@selector(toggleHighlightedMenuCell) userInfo:nil repeats:YES] retain];
self.blinkTimer = blinkTimer;
[blinkTimer release];
}
-(void) toggleHighlightedMenuCell
{
if (self.highlightedMenuCell.isHighlighted)
{
self.highlightedMenuCell.highlighted = NO;
}
else
{
self.highlightedMenuCell.highlighted = YES;
}
self.blinkTimerCounter++;
if (self.blinkTimerCounter == 2)
{
self.blinkTimerCounter = 0;
[self.blinkTimer invalidate];
//execute some code
}
}
//execute some code
これに関する問題は、点滅が完了する前にセクション内のコードの実行を開始しているように見えることです。これを達成するためのより良い方法を考えられる人はいますか?