UIView.animateWithDuration uygulandığında, varsayılanın aksine, kolaylık için özel bir eğri tanımlamak istiyorum: .CurveEaseInOut, .CurveEaseIn, .CurveEaseOut, .CurveLinear.AnimateWithDuration'da özel kolaylık?
Bu benim UIView.animateWithDuration uygulanmasını istediğiniz bir örnek kolaylığıdır:
let ease = CAMediaTimingFunction(controlPoints: Float(0.8), Float(0.0), Float(0.2), Float(1.0))
Ben kendi UIViewAnimationCurve yapma çalıştı, ancak yalnızca bir Int kabul görünüyor.
Özel kolaylığı bir Çekirdek Animasyona uygulayabilirim, ancak daha basit ve iyileştirilmiş kodlar için UIView.animateWithDuration için özel gevşeme yapmak istiyorum. UIView.animateWithDuration her animasyonlu özellik ve kolay tamamlama işleyicileri için animasyonları tanımlamak ve tüm animasyon kodlarını tek bir işlevde kullanmak zorunda kalmayacağım için benim için daha iyidir. - kullanmak ne eğri belirlemek için kullanılan tamsayı değerler onun temelde insan tarafından okunabilir gösterimleri UIViewAnimationCurve bir numaralandırma çünkü var
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")
})
bu soruya bir göz atın bakın. Cevapların çoğu objektif-c'dedir, ancak bir sürü seçenek vardır: http://stackoverflow.com/q/5161465/4114683 – TheSD
Zamanlama işlevleri hakkında harika bilgi. Bu da çok yardımcı olur: http://netcetera.org/camtf-playground.html Bununla birlikte, bunların tümü CA Animasyonu içindir (özel eğrileri yapmak için kullanılması gerekir). OP, bu eğrileri UIView animasyon bloğuna eklemek istedi. –
Şimdiye kadar, cevabım HAYIR gibi geliyor. –