2010-11-18 107 views
9

我有一个ViewController管理一个视图,我有一个表视图,一个ImageView和一个导航栏。 当我把它在横向模式下的导航栏不调整到32时,仍有44 我第一次尝试使用自动调整大小在IB没有成功,然后我试图把这个代码在视图控制器风景模式问题与导航栏

- (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; 
} 

但没有。 我该如何解决这个问题?

回答

7

我犯了一个错误,没有一个navigationController,所以我在代码与出口挂钩导航栏导航栏在IB和我使用

- (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; 
} 

它现在,我已经只有图像视图的问题

+4

你需要在这个方法中调用super,它不应该被注释掉。 – titaniumdecoy 2012-03-27 20:41:47

0

我有导航顶部栏的自定义背景图像相同的问题。

我的风景图像不是正确的高度,它是44px高而不是32px(@ 2x版本相同,它是88px而不是64)。裁剪完图像后,风景顶部条具有正确的高度。