2016-06-24 5 views
0

Ich habe ein Gitter von Drittanbietern, das ich für die Dateneingabe von Infragistics, IGGridView genannt, verwende. Es ist das gelbe Rechteck auf dem Bild.Die animierte Ansicht empfängt keine Berührungsereignisse nach dem Animieren über eine andere Ansicht

Ich versuche meine Hand bei einer Animation und wollte einfach das Gitter nach links 300 Punkte für ein paar Sekunden verschieben.

Bevor ich eine Animation mache, ist mein Raster scrollbar, seine Zellen sind anfassbar, und wenn er angetippt wird, wird ein Editor angezeigt, um den Zellenwert zu bearbeiten.

Aber nach der Animation passiert das Bizarrste, was ich nicht erwartet habe. Die unterlappte Ansicht, in der das gelbe Rechteckraster jetzt ist, erhält immer noch alle seine Berührungsereignisse, RECHTS DURCH DAS GRID, aber das Gitter erhält überhaupt nichts. Es wird nicht geblättert, noch sind seine Zellen zu tappen. Es ist so, als wäre das Gitter nach der Animation gestorben. Ich dachte, es war vielleicht, weil, obwohl das Gitter an der Spitze erschien, war es nicht wirklich an der Spitze, so fügte ich einen Completion-Handler und einen Anruf bringSubviewToFront, aber immer noch nichts. Wenn ich das Gitter ganz rechts berühre, wo es die andere Ansicht links nicht überlappt, erhält das Gitter immer noch seine Berührungen und ich kann es scrollen und eine Zelle bearbeiten (ganz rechts). Es ist also so, als wäre das Gitter durch die Ansicht verdeckt, dass es sich überlappt.

Was ist dort los?

Mein Animationscode ist auf einem Swipe nach links Geste.

-(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]; 
     }]; 
    } 

Vor Animation, sieht es so aus.

enter image description here

Nach Animation sieht es so aus.

enter image description here

+0

Haben Sie versucht, dies mit einem Drittanbieter-Steuerelement zu reproduzieren, um zu sehen, ob das das Problem ist? – Code

+0

@Code Nein, das habe ich noch nicht ausprobiert. –

Antwort

1

ich es herausgefunden. Ich habe vergessen, dass mein Raster auf einer transparenten Ansicht platziert ist, und es wird meistens außerhalb dieser transparenten Ansicht bewegt, wenn ich es animiere, sodass ich alle Berührungen auf dem Teil des Gitters abschneide, der nach außen verschoben wurde seine zugrunde liegende Sichtweise.

+0

Also das ist eine Antwort? –

Verwandte Themen