Übergangsverhalten mit transitionFromView und transitionWithView
Ich bin versucht, um einen übergang zwischen zwei Untersichten (view1 und ansicht2). Wenn eine Taste gedrückt wird, ich will view1 (vor) spiegeln und zeigen, ansicht2 (zurück). Ich habe versucht, sowohl die transitionFromView und transitionWithView. Jede funktioniert, aber jeder hat ein problem.
transitionFromView - flips die superview (das ganze Fenster-Ansicht dreht, nicht die Untersichten). Wenn das flip-passiert - eine Untersicht ist, die auf der Vorderseite der superview vor den spiegeln, und die anderen Untersicht ist auf der Rückseite der flip - wie es sein sollte. Aber ich will nicht die superview, flip, nur der Untersichten.
transitionWithView - flips nur die Untersichten - aber der 'Bild' zu sehen bekommt angezeigt, die vor dem übergang passiert.
Jemand einen Vorschlag?
-(IBAction) button1action:(id) sender {
if ([sender tag] == 0) {
[UIView transitionFromView:view2 toView:view1 duration:2.0
options:UIViewAnimationOptionTransitionFlipFromLeft
completion:nil];
}
else {
[view1 removeFromSuperview];
[self.view addSubview:view2];
[UIView transitionWithView:view2
duration:2.0
options:UIViewAnimationOptionTransitionFlipFromRight +
UIViewAnimationOptionShowHideTransitionViews
animations:^{}
completion:nil];
}
}
InformationsquelleAutor der Frage David | 2010-08-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie zu entfernen und fügen Sie die Untersichten in der animation block. Außerdem denke ich, dass transitionWithView soll, um den super Blick als argument. Ich denke, was Sie tun müssen, um dieses Recht zu bekommen ist die Verwendung eines container-Ansicht, die ist die gleiche Größe wie die Ansichten, die Sie drehen möchten.
Dies ist kopiert aus der Dokumentation:
InformationsquelleAutor der Antwort Erik B
Habe ich mit diesem genau das gleiche problem, und ich Stimme mit der früheren Antwort. Es scheint, Sie haben müssen eine container-Ansicht zum animieren ein übergang von einer Untersicht auf einen anderen Untersicht.
Ich bin mit dem transitionFromView Ansatz. Um einen hintergrund, der hinter der animation benötigen Sie auch einen superview mit dem hintergrund für die container-Ansicht.
Mein code sieht wie folgt aus:
InformationsquelleAutor der Antwort Sam
Hier meine funktionierende Lösung stub, eine einfache Sache, die dauerte 2 Stunden, verdammt:
wir haben 1-Taste, um flip-Dinge, die ein
UIView
genannt-panel, das hält die 2 Ansichten, die ich tauschen wollen mit einem flip-animation.InformationsquelleAutor der Antwort Rui Nunes
Nachdem laufen in das gleiche problem, ich Stimme mit Eric und Sam:
entweder transitionWithView oder transitionFromView werden beide tun, was Sie wollen, wie oben angegeben, wie lange, wie Sie erstellen Sie eine container-Ansicht der entsprechenden Größe, die Sie möchten, zu spiegeln. Sonst wird das ganze Fenster Ansicht flip.
Also, wenn view1 ist die Untersicht beginnen Sie mit und das Sie spiegeln möchten, ansicht2, dann fügen Sie
Und dann ist der einfachste Weg, um zu animieren ist wohl:
InformationsquelleAutor der Antwort Hal
Ich hatte die gleiche Anforderung und haben gesehen, dass viele Ansätze-von Schichten (die endet sehr kompliziert, wenn Sie nur wollen, um mit einem UIView), um Anregungen, brauchte ich einen "container", um dann den übergang zwischen den sub-views. Aber wenn Sie nur wollen, um swithc etwas von vorne nach hinten, wie spiegeln über eine Spielkarte oder ein Spiel, Kachel, machte ich eine Zeile ändern:
(Hinweis: ich habe ein array von UIViews (tiles[x][y]) in einem raster (für ein Spiel). ich habe alle meine imagefilenames in Datenbank-Tabellen /arrays, die dynamisch geladen werden, in den UIImages der UIImageViews. Das Bild der "Rückseite" der Karte oder Kachel in einem UIImage mit dem Namen "tileBackPicImageNM".
also mein code, der einfach getauscht, das vordere Bild heraus, die für ein Bild von der Rückseite war:
welche gut funktioniert.
aber und nun, zu zeigen, eine flipping-action, es ist:
Experimentierte ich mit verschiedenen "Dauer" - Parameter -- später machte es ein float, dass ich die Kommentarzeichen vor der viewDidLoad-routine. Schneller als 0,3 ist fast nicht sichtbar, und ein Wert von 1 oder 2 ist sehr langsam...
Diese nicht mit zwei sub-Ansichten, das ist bei mir der Fall ist viel mehr nützlich, da ich nicht wollte, um eine Reihe von Behältern mit einer Hierarchie von views, usw... und auf neue Ebenen usw, die ich immer neu laden des arrays sowieso...
InformationsquelleAutor der Antwort harry
Beachten Sie, dass die container-Ansicht erfordert eine solide Hintergrundfarbe.Es bedeutet nichts anderes, als die klare Farbe.Das war mein Fehler, und verbrachte ziemlich lange Zeit, um es herauszufinden.
InformationsquelleAutor der Antwort Ilker Baltaci
mit transitionFromView, Vorder-und Rückseite Ansicht sein sollte, die innerhalb einer anderen Ansicht(nicht die super Aussicht). auf diese Weise wird es nicht spiegeln Sie den gesamten Bildschirm.
UIView.transitionFromView(frontView, toView: backView, duration: 0.5, Optionen: .TransitionFlipFromLeft | .ShowHideTransitionViews) { fertig in
}
Möchten Sie vielleicht, um die (andere Ansicht) gleich der Größe der frontView
InformationsquelleAutor der Antwort Ahmed Onawale