2014-01-25 4 views
2

У меня проблема, мне нужно, чтобы построить что-то похожее на это, где красная полоса является UIImageView и синий бар панель навигации: http://imagizer.imageshack.us/v2/800x600q90/30/iqtt.pngNavigation Bar Усадка после возобновления приложения

я был в состоянии сделать это со следующим кодом, моя проблема в том, что когда я нажимаю кнопку «домой», чтобы закрыть приложение и снова открыть его, моя панель навигации сжимается, на изображении ссылки он имеет 88 пикселей и после перезапуска 44 пикселя, поэтому он беспорядок с моим макетом.

Вот код, я использовал на viewDidAppear:

- (void)viewDidAppear:(BOOL)animated { 
     [super viewDidAppear:animated]; 
     self.navigationController.view.frame = CGRectMake(0, 0, 320, 568); 
     self.navigationController.navigationBar.frame = CGRectMake(0, 0, 320, 88); 

     v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
     UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(33, 5, 255, 29)]; 
     [img setImage:[UIImage imageNamed:@"top-logo"]]; 
     [v addSubview:img]; 
     [self.navigationController.navigationBar addSubview:v]; 
    } 

Как я мог исправить это поведение?

+0

попытка - (Недействительными) viewDidAppear {self.navigationController.navigationBar.frame = CGRectMake (0, 0, 320, 88);} И в viewWillAppear тоже. – santhu

+0

Я уже пробовал, но после перезапуска он не работает! Спасибо –

ответ

0

вы никогда не должны менять рамку навигационной панели. Вместо этого закройте панель навигации и создайте свое собственное представление и добавьте его в начало self.view.

self.navigationController.navigationBarHidden =YES; 
self.view.frame = CGRectMake(0, 0, 320, 568);; 

// v is our total 88px height navigation bar 
v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 88)]; 
UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(33, 5, 255, 29)]; 
[img setImage:[UIImage imageNamed:@"top-logo"]]; 
[v addSubview:img]; 

UIView *navigationBar = //create nav bar with buttons of height 44px 
[v addSubview:navigationBar]; 

[self.view addSubview:v]; 
+0

Да, я должен это сделать. Я сделаю вот так, спасибо! –

Смежные вопросы