Diese Frage streng etwa ist iOS9 +In 7.3/9/2 + Wie kann ich die Rotationsanimation deaktivieren, wenn sich das Gerät dreht?
Sagen Sie bitte eine gewöhnliche moderne app (automatisches Layout, Storyboard, universal), die alle Positionen vier Dreh erlaubt
Sie wollen, dass es in der Normalen autorotate Weg, so wird es zu Ihrem neuen Constraint-basierten Layouts, wenn Benutzer Gerät von Querformat zu Hochformat dreht
Aber Sie wollen einfach keine Animation während der Benutzer das Gerät drehen. Sie möchten, dass es nur auf das neue seitliche oder aufrechte Layout "klickt".
Der einzige Weg, ich in der Lage gewesen, dies zu erreichen, ist durch Zugabe von:
override func viewWillTransitionToSize(size:CGSize,
withTransitionCoordinator coordinator:UIViewControllerTransitionCoordinator)
{
coordinator.animateAlongsideTransition(nil, completion:
{_ in
UIView.setAnimationsEnabled(true)
})
UIView.setAnimationsEnabled(false)
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator);
}
zu einem View-Controller, ein höchsten oder nahezu höchsten VC, die den Rest der Behälter Ansichten oder was auch immer halten in die Szene.
Dies ist im Grunde die gleiche alte Idee der Verwendung von willRotateToInterfaceOrientation/didRotateFromInterfaceOrientation (beide jetzt in modernen iOS unbrauchbar), um Animationen ein- und auszuschalten.
Allerdings gibt es viele Probleme
dies nicht AppWide arbeiten, es ist ein Chaos, ist es szenenbasierte
es Very Bad scheint alle Animationen einfach zu deaktivieren
können Sie alle Arten von Rennstrecke sehen
Diese Frage ist streng genommen über iOS9 +
In diesen Tagen Gibt es einen besseren Weg, um die Drehung Animationen in einer App, die Landschaft/Porträt unterstützt zu deaktivieren?
Diese Frage ist streng über iOS9 +
Für welche Version von iOS ist das gedacht? –
Hallo @LukeVanIn danke, sicherlich iOS9. Beachten Sie den ersten Satz! – Fattie
Funktioniert auf dem Simulator, aber nicht auf einem echten Gerät (ipad). 'UIView.areAnimationsEnabled()' gibt 'true' innerhalb des Animationsblocks zurück, was mich verwirrt (da es vorher deaktiviert wurde). Es muss ein Timing-Problem mit dem Rotationsanimationsblock bestehen ... ('setAnimationsEnabled' doc states:" _ Diese Methode betrifft nur die Animationen, die nach dem Aufruf übergeben werden. Wenn Sie diese Methode aufrufen, während vorhandene Animationen ausgeführt werden, werden diese Animationen fortgesetzt laufen lassen, bis sie ihren natürlichen Endpunkt erreichen._ ") – lazi74