2013-10-02 22 views
7

Bir Naviagtion Denetleyicisine gittiğimde, gezinme çubuğunun, kapak animasyonu tamamlandıktan hemen sonra hafifçe atladığını fark ettim.UINavigationBar yüksekliği, modal kapak animasyonundan sonra değişir

Yalnızca bunu, varsayılan slayt yukarı animasyonu kullandığımda değil, yatay bir çevirme tabakası kullandığımda yapar. İşte

Sorunu göstermek için yaptık bir GIF (minik boyutu hakkında üzgünüm!): Başlığı "Modal" ile Nav çubuğunun

http://i.imgflip.com/3ym0y.gif

not alın - bunu fark Animasyondan sonra ~ 20 piksel aşağı atlar.

Yukarıdaki örnek, yeni bir proje ile oluşturulmuştur - UINavigationController veya UINavigationBar alt sınıflarına sahip değilim. Ben eksik

http://i.imgur.com/qFlK2oB.jpg

: İşte film şeridi halinde yardımcı olur, değil mi?

- (void)viewWillAppear:(BOOL)animated 
{ 
    // Workaround #1 for jumpy navbar 
    [self.navigationController.navigationBar.layer removeAllAnimations]; 
} 

Ve (yukarıdaki gibi nedenle aynı denetleyicisi olarak) kontrolörü görevden zaman:

cevap

20

sen modally sunum yaptığınızı denetleyicisi viewWillAppear Bu ekle

// Workaround #2 for jumpy navbar 
[UIView transitionWithView:self.navigationController.view 
        duration:0.75 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:nil 
       completion:nil]; 
[self dismissViewControllerAnimated:YES completion:nil]; 

Bkz https://stackoverflow.com/a/19265558/254603

+0

Teşekkürler dostum, bu hile yaptı! – Koonga

+0

Herkes varsayılan animasyon animasyonu süresinin aslında 0,75 olduğunu doğrulayabilir mi? Aynı zamanda 1.0 veya o aralıktaki bir dizi değer gibi görünüyor. Teşekkürler! – James

İlgili konular