0

利用可能な 3 つの UIButton イベントがあります。

  • UITouchUPInside
  • UITouchDown
  • UITouchDownRepeat

私の問題は次のとおりです。

ボタン(再生-一時停止)があります。初めて再生ボタンが表示され、ユーザーがそれをタップすると、プロセスが開始されます。ボタンのイメージが一時停止に変わり、タグが 1 に変わります。

ユーザーが一時停止ボタンをタップすると、プロセスが一時停止し、画像が再生に変わり、タグが 0 に変わります。

今私の問題は、ユーザーが複数回タップすると、正しく実行されないことです。デスクトップマウスのダブルクリックのように。

上記の 3 つの方法をすべて試しましたが、常に最初の 2 つの方法が呼び出されています。では、それを回避する方法。

ダブルタップの場合は、プロセスも 1 回だけ開始する必要があります。

提案してください。

編集: 現在TouchUpInside、イベントのみを使用しており、確認中です

if (btn.tag == 0) {

// change to pause button
// start process

btn.tag = 1;
}
else if (btn.tag == 1) {

// change to play button
// stop process

btn.tag = 0;
}

しかし、ユーザーがボタンをすばやくタップすると、これが問題を引き起こしています。私のプロセスはスレッドで実行されているため、ロードと停止に時間がかかります。一方、使用はすでにボタンをダブルタップしています。

4

2 に答える 2

0

ダブルタップを処理する必要はありません。ボタンを適切に処理していません。

ボタン アクションにこれを試して、ボタンのデフォルト/選択状態に適切な画像を設定します。

- (void)handleButtonAction:(UIButton *)sender {

    [sender setSelected:![sender isSelected]];

    if ([sender isSelected]) {

        //Play

    } else {

        //Pause

    }

}
于 2013-07-19T12:17:40.333 に答える