2016-06-24 17 views
0

IGGridViewと呼ばれるからのデータ入力に使用するサードパーティグリッドがあります。画像の黄色い矩形です。アニメーションビューは別のビューでアニメーションを作成した後にタッチイベントを受け取りません

私はいくつかのアニメーションで私の手をしようとしているだけで、グリッドを数秒間に左の300ポイントに移動したいと思っていました。

アニメーションを行う前に、グリッドはスクロール可能です。セルにはタッチできます。タップすると、セルの値を編集するエディタが表示されます。

しかし、アニメーションの後、私が全く期待していなかった最も奇妙なことが起こります。黄色の矩形グリッドがオーバーラップしているアンダーラップビューは、まだグリッドを介してすべてのタッチイベントを受け取りますが、グリッドはまったく何も受け取りません。スクロールしたり、セルをタップすることはできません。グリッドがアニメ化された後に死んだようなものです。 グリッドが上に現れても上に表示されないので、補完ハンドラを追加してbringSubviewToFrontコールを実行しましたが、それでも何もしなかったことが原因と思われます。右のグリッドにタッチすると、左側の他のビューと重なっていないグリッドがタッチされ、スクロールしてセル(右端のセル)を編集できます。だから、グリッドはオーバーラップしているという見方によって隠されているようです。

何が起こっているのですか?

私のアニメーションコードは、スワイプの左ジェスチャーに表示されます。

-(void)handleSwipeLeftRecognizer:(UISwipeGestureRecognizer*)recognizer 
    {    
     [UIView animateWithDuration:2 animations:^{ 
      grid1.frame = CGRectMake(-300, 0, 340, self.view.frame.size.height); 
     } completion:^(BOOL finished) { 
      grid1.frame = CGRectMake(-300, 0, 340, self.view.frame.size.height); 
      [[UIApplication sharedApplication].keyWindow bringSubviewToFront:grid1]; 
     }]; 
    } 

は、アニメーションの前に、それはこのようになります。アニメーションの後

enter image description here

それはこのようになります。

enter image description here

+0

サードパーティ製でないコントロールでこれを再生してみましたか? – Code

+0

@コードいいえ、私はまだそれを試していません。 –

答えて

1

私はそれを考え出しました。透明なビューの上にグリッドを配置していることを忘れていました。アニメーションを作成すると透明なビューの外側にほとんど移動していましたので、外に移動したグリッドの部分をすべて切り取っていますその基本的な考え方。

+0

これは答えですか? –

関連する問題