Wenn Sie UIView.animateWithDuration ausführen, möchte ich im Gegensatz zum Standardwert eine benutzerdefinierte Kurve definieren: .CurveEaseInOut, .CurveEaseIn, .CurveEaseOut, .CurveLinear.Benutzerdefinierte Leichtigkeit in animateWithDuration?
Dies ist ein Beispiel Leichtigkeit, die ich UIView.animateWithDuration angewendet werden sollen:
let ease = CAMediaTimingFunction(controlPoints: Float(0.8), Float(0.0), Float(0.2), Float(1.0))
Ich habe versucht, mein eigenes UIViewAnimationCurve machen, aber es scheint es nur eine Int akzeptiert.
Ich kann die benutzerdefinierte Leichtigkeit auf eine Kernanimation anwenden, aber ich möchte benutzerdefinierte Beschleunigung für UIView.animateWithDuration für einfacheren und optimierten Code haben. UIView.animateWithDuration ist besser für mich, da ich keine Animationen für jede animierte Eigenschaft und einfachere Vervollständigungsroutinen definieren muss und den gesamten Animationscode in einer Funktion haben muss.
Hier ist mein nicht-funktionierenden Code so weit:
let customOptions = UIViewAnimationOptions(UInt((0 as NSNumber).integerValue << 50))
UIView.setAnimationCurve(UIViewAnimationCurve(rawValue: 5)!)
UIView.animateWithDuration(2, delay: 0, options: customOptions, animations: {
view.layer.position = toPosition
view.layer.bounds.size = toSize
}, completion: { finished in
println("completion")
})
einen Blick auf diese Frage Nehmen Sie sehen. Die meisten der Antwort sind in objective-c, aber es gibt eine Reihe von Optionen http://stackoverflow.com/q/5161465/4114683 – TheSD
Große Informationen über Timing-Funktionen. Das hilft auch sehr: http://netcetera.org/camtf-playground.html Dies sind jedoch alle für CA Animation (die verwendet werden muss, um benutzerdefinierte Kurven zu machen). OP wollte diese Kurven zu einem UIView-Animationsblock hinzufügen. –
Bis jetzt klingt es wie meine Antwort ist NEIN. –