5

テーブルビュー自体ではなく、セルがすべてのタッチを処理するUITableViewがあります。セルは、シングルタップとダブルタップの両方に瞬時に応答する必要があります。(はい、それはシングルタップが呼び出され、その後ダブルタップが呼び出されることを意味します。両方を呼び出してほしいです)。

シングルタップアクションは、タップされたセルの下にある別のセルにドロップすることです(セルは上のセルのメニューです)。これにはinsertRowsAtIndexPathsを使用します。ただし、そのアニメーションの間、ユーザーインタラクションは完全に失敗するように見えるため、2回目のタップでそのアクションを実行することはできません。

2つのUITapGestureRecognizers(シングルタップとダブルタップ)を使用し、ダブルが失敗するのを待つようにシングルを設定すると機能しますが、シングルタップアクションで顕著な遅延が発生します。

UIViewアニメーション中に、UIViewAnimationOptionAllowUserInteractionにフラグを立てることができ、正常に機能することはわかっていますが、UITableViewのオプションではありません。

tablviewアニメーション中にタッチイベントをピックアップし続ける方法について何か考えはありますか?

私はUITapGestureRecognizersを使用してみましたが、touchesEndedとtouchesBeganを使用しましたが、アニメーション中にタッチを登録したものはありません。

4

1 に答える 1

1

アニメーションを実行するための独自の for ループを作成するだけです。アニメーション 0.3 秒のように見える独自の再帰ロジックを使用しました。

NSInteger i = 0;

-(void)recursiveMethod
{
    //Doing Animation task very slowly...
    //For example, Transforming UIView.

    [aView setTransform: CGAffineTransformMakeScale(i/100.0,i/100.0)];

    if(i<100)
    {
        [self performSelector:@selector(recursiveMethod) afterDelay:0.3/100.0];
        i++;
    }
}

また、タッチアクションも実行できます。ユーザーの操作がコンパイラによって無効にされることはありません。

于 2013-03-28T17:58:48.040 に答える