2017-12-28 11 views
0

Ich versuche, einen UIPanGestureRecognizer Delegaten zu bauen, der die Breite/Höhe eines UIView bewegt, wenn es einen bestimmten x-Wert trifft, aber ich renne in dieses seltsame Flimmern, das auftritt, wenn Wert überschreitet die Schwelle (65px im Beispiel unten).UIView.animate auf Frame, wenn in einem UIPanGestureRecognizer

@objc func moveCardRec(sender: UIPanGestureRecognizer){ 
    if sender.translation(in: self).x < -65.0 { 
     self.makeButtonPop() 
    } else { 
     self.makeButtonUnPop() 
    } 
} 

Es ist wie die Ansicht, dass ich den x-Wert mit der Pfanne Geste bin bewegt für einen zweiten zu bewegen, wenn die UIView (die, die ich Pop wollen/animieren für sec) Rückstand oder einen Rahmen Zurücksetzen . Keine Ahnung.

Anfügen eines Gif von dem, was gerade passiert. Sie werden sehen, dass es für einen Sekundenbruchteil wackelt. Die makeButtonPop() Funktion ist nur ein UIView.animate auf dem Rahmen der Kreisbildansicht mit dem Häkchen darin.

enter image description here

Antwort

0

Okay, ich bin dumm. Habe Stunden damit verbracht.

Gefunden, wie es zu beheben. Stellen Sie sicher, dass sich die UIView, die Sie animieren möchten, in einem enthaltenen UIView (wie einem übergeordneten) befindet. Also das obige Beispiel, der lila Kreis ist innerhalb einer UIView, die Größen nicht ändert.

Das Kind im Elternteil ändert seine Größe. Aus irgendwelchen Gründen, wenn die animierte UIView und die, die ich ziehe, im selben Container/derselben direkten Eltern sind, mögen sie sich nicht und flimmern.

Hoffe das hilft jemand anderem!

Verwandte Themen