2013-12-17 21 views
12

iOS 7 ile, hiyerarşinin üstündeki itilmiş görüntü denetleyicisini kaydıran yeni bir itme animasyonu oluşturuldu. Bir gölge ekleniriOS 7 UINavigationController Animasyon gölgesini itme

:

A shadow of view controller when animating

Ve alttan görünümü denetleyicisi üzerinde hafif bir bindirme: animasyon gerçekleştiğinde Fakat iOS görünüşe üstten görünüm denetleyicisi tasarımını değiştirmek için iki şey yapar

A light overlay

Birçok uygulamada bu bir sorun değildir. Ancak, şu anda piksel mükemmel tasarımlı bir uygulama üzerinde çalışıyorum ve açık arka plana sahip görüntü denetleyicileri kullanıyorum. Ancak bu işlevsellik aynı kalır ve ışık denetleyicisi görünüm denetleyicisi üzerinde görünür. Arka plan beyaz bir eğim olduğundan, bu ışık kaplaması (ekran görüntüsü 2'de) çok görünür ve animasyon tamamlandığında, animasyon olmadan kaldırılır, bu da çok dikkat çekici ve can sıkıcı olur.

Ben özel animasyonlar ve geçişler oluşturabilir farkındayım, ancak merak ediyorum:

bu ışık bindirme ve gölgeyi kaldırmak (veya değiştirmek) için herhangi bir yolu var mı, özel geçişler oluşturmak zorunda kalmadan?

Yardımlarınız için teşekkür ederiz.

+0

Bunu çözmeyi başardınız mı? –

+0

Ağır değişiklikler olmadan olmaz. – Legoless

+0

iOS 7'nin özel görünüm denetleyicisi geçiş API'lerini kullanmayı denediniz mi? objc.io/issue-5/view-controller-transitions.html – rounak

cevap

1

Bu en zarif çözüm değil, ancak insanların ne istediklerini göstermek için UIImage animasyonlarını kullandıklarını gördüm. Yani, yapabilirsin:

  • Ekran Görüntüsü gelen UIViewController
  • UIImageView
  • Yine, biraz kaldırın animated:

  • için NO geçen bir UIImageView
  • Çağrısı pushViewController:animated: gelişini canlandırın Bir hack, ama belki senin senaryo için en iyi çözüm.

  • +0

    Thx, iyi fikir! –

    1

    o özel API kullanır çünkü elma uygun olması durumunda bilememesi veya etmediğimiz bu vekil

    [[UIImageView appearanceWhenContainedIn:NSClassFromString(@"_UIParallaxDimmingView"), nil] setAlpha:0.0f]; 
    

    deneyin. Uygulama gönderildiğinde güncellenir.

    +0

    Bu çözüm, yalnızca navigasyon denetleyicinizin hiyerarşisinde başka herhangi bir görüntü görünümüne sahip değilseniz çalışır ... bu nedenle, süper kullanışlı değildir. – patr1ck

    +0

    @ patr1ck UIImageView alt sınıfını kullanabilir ve alt sınıfınızı ihtiyaç duyduğunuz her yerde kullanabilirsiniz. Sonra bu proxy'yi yalnızca alt sınıfınıza uygulanmayacak olan Apple'ın UIImageView ürününe belirtebilirsiniz. – Gaston

    +1

    Bu onaylandı mı? – bangerang