2010-11-18 11 views
9

Tablo Görünümü, ImageView ve Gezinme Çubuğuna sahip olduğum bir görünümü yöneten bir ViewController var. Manzara modunda koyduğumda, Gezinme Çubuğu 32 olarak yeniden boyutlandırılmaz, hala'da kalır. IB'de otomatik boyutlandırmayı ilk kez kullanmadan denedim, sonra bu kodu ViewControllerGezinme çubuğuyla birlikte yatay mod sorunu

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration { 
    //[super willAnimateRotationToInterfaceOrientation:orientation duration:duration]; 
    CGRect frame = self.navigationController.navigationBar.frame; 
    if (UIInterfaceOrientationIsPortrait(orientation)) { 
     frame.size.height = 44; 
    } else { 
     frame.size.height = 32; 
    } 
    self.navigationController.navigationBar.frame = frame; 
} 

ama hiçbir şey. Bu sorunu nasıl çözebilirim?

cevap

7

Orada bir NavigationController değildir, bu yüzden kod çıkışı Navbar'daki ile IB gezinti çubuğu bağlantılı ve ben Ben ettik, şimdi çalışıyor

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration { 
    [super willAnimateRotationToInterfaceOrientation:orientation duration:duration]; 
    CGRect frame = self.navBar.frame; 
    if (UIInterfaceOrientationIsPortrait(orientation)) { 
     frame.size.height = 44; 
    } else { 
     frame.size.height = 32; 
    } 
    self.navBar.frame = frame; 
} 

kullandım, bir hata yaptım görüntü görünümünde yalnızca bir sorun

+4

Bu yöntemde süper arama yapmanız gerekiyor, yorumlanmamalıdır. – titaniumdecoy

0

Gezinme çubuğu için özelleştirilmiş arka plan görüntüsüyle aynı sorunu yaşadım.

Peyzaj resmim doğru yükseklik değildi, 32px yerine 44px yüksekliğinde (@ 2x sürümü için aynı, 64 yerine 88 px idi). Görüntüleri kırptıktan sonra, manzara üst çubuğu doğru yüksekliğe sahiptir.