2016-05-28 20 views
0

Ich habe ein Stück Kernanimation mit 2 Methoden, um Aussehen zu geben, dass das Objekt in der Größe von der Mitte-auswärts von der vorhandenen Position wächst ...Kernanimation (Größenänderung) mit Autolayout-Herausforderung

(1) viewDidLayoutSubviews()

self.imageView.frame = CGRectMake (187, 249, 0, 0)

, die für dieses Imageview Objekt in der Mitte des Bildschirms ist

(2) viewDidAppear() - mit Animationsblock der Dauer 1 Sekunde. z.B.

UIView.animateWithDuration(1.0, delay: 1.5, options: [], animations: { 

     self.imageView.frame = CGRectMake(16, 70, 343, 358) 

     }, completion: nil) 

was Objekt in voller Größe, für die spezifische Bildschirmgröße, wo ich es zeigen möchte.

Wenn ich die x- und y-Koordinaten für CGRectMake (...) auf der iPhone-Größe verwende Ich suche nach sie funktionieren, aber wenn ich Simulator mit verschiedenen Bildschirmgrößen versuche, funktioniert es nicht in Verbindung mit den Auto-Layout-Einschränkungen, überschreibt jedoch die vorhandenen Einschränkungen.

Frage (n) ...

Gibt es eine Möglichkeit, diese Animation Arbeit zu machen, indem sie proportional zur Bildschirmgröße irgendwie, anstatt explizite Koordinaten und Größen Zentrierung? über CGRectMake ...? (... scheint einen Zusammenstoß zwischen der Verwendung von Autolayout und Animation zu zeigen)

Idealerweise suche ich nach einer eleganten einfachen Lösung? oder bin ich an der Grenze der Technik?

Vielen Dank im Voraus!

Antwort

0

Sie können Imageview Standort mit automatischen Layout Einschränkungen gesetzt & es eine Größe Einschränkung geben und durch einen Auslass von ihm nehmen können Sie Höhe alle anderen Einschränkungen zu erhöhen animieren lassen

@IBOutlet var myViewHeight arbeiten: NSLayoutConstraint!

UIView.animateWithDuration (0,3, Verzögerung: 0.0, Optionen: [], Animationen: { () -> Void in

 self.myViewHeight.constant = 300 

     self.view.layoutIfNeeded() 
     }, completion:nil) 

Sie sollten den Austritt aus dem Zwang sich wie die Kontrolle übernehmen + ziehen auf Label.top = topmargin

You should take the outlet from the constraint itself

+0

Wenn ich eine IBOutlet aus dem Storyboard-Code Viewcontroller, die Optionen für das Objekt erstellen, sind wit erstellen h UIImageView, rahter als NSLayoutConstraint !. Gibt es noch etwas, das ich hinzufügen muss, um deine Idee oben auszuprobieren? – devim1

+0

Zusätzlich benötigt CGRectMake noch genaue x, y, width, height für das endgültige Layout für die Animation. Von daher sehe ich immer noch einen Konflikt zwischen Animation und Auto-Layout – devim1

+0

Sie zentrieren Ihre Bildansicht in der Superansicht X, Y . dann geben Sie es ein Seitenverhältnis von 1: 1 dann Höhenbeschränkung = 0, die Sie es als Steckdose nehmen werden dann werden Sie Höhe animieren self.myViewHeight.constant = 300 –

Verwandte Themen