2016-09-15 3 views
0

Ich habe einen Renderer, der auf der UIView basiert. Ich kann die Animation ändern, wenn ich eine Rotation des Geräts führe, das den Aufruf von layoutSubviews mehrere Male führt. Gibt es eine Möglichkeit, die Animation der Ansicht zu erkennen, wenn das Gerät fertig gedreht ist.IOS wie die Orientierung zu erkennen ist abgeschlossen

Dies ist der layoutSubview Anruf

public override void LayoutSubviews() 
{ 
     base.LayoutSubviews(); 

     var size = base.Frame; 
     Element.OnSizeChanged((int) size.Width, (int) size.Height); 
} 

Antwort

0

Sie können das Ende einer UIViewController Drehung über einen Koordinator Abschluss-Handler innerhalb des ViewWillTransitionToSize Methode erfassen:

+0

Ich zwingende eine UIView nicht UIViewController – LittleFunny

+0

@ Simon eine Orientierungsänderung durch die 'UIViewController' behandelt wird und seine Unteransichten werden aufgefordert, die Größe zu ändern, sie selbst, nicht zu wissen, warum. Sie könnten den Completion-Handler verwenden, um eine Methode auf der 'UIView' aufzurufen, oder eine sauberere entkoppelte Art wäre, ein Event im Handler zu posten und Ihre Subclasse 'UIView's Subscribe zu dem Event zu haben, könnten Sie auch' verwenden NSNotificationCenter.DefaultCenter' – SushiHangover

+0

Danke, dass ich mir das ansehen werde. – LittleFunny

0

auf viewWillTransitionToSize einen Blick darauf werfen.

UIKit ruft diese Methode auf, bevor die Größe der Ansicht eines Ansichtscontrollers geändert wird. Sie können diese Methode in Ihren eigenen Objekten überschreiben und damit zusätzliche Aufgaben im Zusammenhang mit der Größenänderung durchführen. Zum Beispiel könnte ein Container-View-Controller diese Methode verwenden, um die Merkmale der eingebetteten untergeordneten Ansichts-Controller zu überschreiben. Verwenden Sie das bereitgestellte Koordinatorobjekt, um alle von Ihnen vorgenommenen Änderungen zu animieren.

refer apple documentation für weitere Details !!

Verwandte Themen