2014-04-04 14 views
10

Harekete geçirilen UIPercentDrivenInteractiveTransition ile CABasicAnimation (veya başka herhangi bir CAAnimation) kullanırken, finishInteractiveTransition öğesinde, animasyon UIView blok animasyonu kullanılırken olduğu gibi sorunsuz bir şekilde animasyonu yerine son konuma atlar. CAAnimation kullanırken sonlandırmak için finishInteractiveTransition'a düzgün bir şekilde nasıl animasyon yapılacağını anlamaya çalışıyorum.UIPercentDrivenInteractiveTransition with CABasicAnimation

Şimdi bütün günü harcadım. CAAnimation'ı özel VC geçişleri ile kullanmaktan bahsetmiyor gibi görünüyor, herkes UIView blok tabanlı animasyonu ifade ediyor.

Sorun gösteren küçük bir örnek proje oluşturdum.

https://github.com/stringcode86/UIPercentDrivenInteractiveTransitionWithCABasicAnimation

bakarak zaman geçiren herkese teşekkür ederiz. Bunu takdir ediyorum. Sonradan anlaşıldı ki

+1

Repo'yu kontrol edin. Dosyalar eksik. Proje derlenmiyor. – RaffAl

+0

Ona bakarken zaman ayırdığınız için teşekkür ederiz. Repo'yu tamir ettim, şimdi iyi olmalı – stringCode

+0

Bu sorun için daha iyi bir düzeltme var mı? UIPercentDrivenInteractiveTransition' alt sınıfını kullanmadan veya kendi UIViewControllerInteractiveTransitioning 'i kurmadan. –

cevap

10

ÇÖZÜM

çözüm katmanları zaman başlayacak manipüle etmektir. Çözümü aşağıda daha ayrıntılı olarak açıklamaya çalışacağım. UIPercentDrivenTransition alt sınıfını kullanan veya UIViewControllerInteractiveTransitioning protokolünü uygulayan iki çözüm vardır. Özel UIViewControllerInteractiveTransitioning ana dalda ve UIPercentDrivenTransition uygulaması UIPercentDrivenTransitionImplementation dalındadır.

https://github.com/stringcode86/UIPercentDrivenInteractiveTransitionWithCABasicAnimation

AÇIKLAMA

UIPercentDrivenTransition animateTransition animasyonları kullanır: updateInteractiveTransition: uygulamaktır. Ben sadece (startInteractiveTransition:) aramak ve daha sonra katman (belki de konteyner görünümü katman) hızını 0.0 olarak ayarlamak ve timeOffSet işlemek için tahmin ediyorum. Bu, geçişinizi otomatik olarak ileri geri taşımanıza olanak tanır. Bu UIView animasyonlarınız için yapar. CAAnimations ile ilgili sorun onların begingTime, timeOffSet, speed özelliklerinin bir nedenden dolayı doğru şekilde ayarlanmamış olmasıdır. Bunları mantıklı değerlere ayarlarsanız, tüm animasyonlu içerikleri containerView'da ileri ve geri taşıyabilirsiniz. Ben SCPercentDrivenTransition cadı yarattı UIPercentDrivenTransition için alternatiftir. Yalnızca animateTransition'ı geçersiz kılmanız gerekir: ve handGesture çağrısı: hareket algılayıcınızın eylem çağrılarından.

+0

ne büyük bir açıklama. Teşekkürler – andrei

+1

Dünyada UIViewControllerInteractiveTransitioning uygulayan ve standart yüzde geçişli geçiş dışında bunu nasıl kullanabileceğinizi gösteren tek kişi siz olabilirsiniz. Böylece sizi korusun! – hao