Не удается установить полное изображение на панели навигации

#iphone #objective-c #ios #uinavigationcontroller

#iPhone #objective-c #iOS #uinavigationcontroller

Вопрос:

Я не могу установить полное изображение на панели навигации (или навигационном контроллере в верхней части приложения). слева останется мало места.И когда я нажимаю кнопку info, ее нет на изображении. Как я могу это исправить

вот мой код, пожалуйста, взгляните

 UIImageView* img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"headerBG.png"]];
    img.frame = CGRectMake(0, 0, 320, 44);
    self.navigationItem.titleView =img;
    [img release];


UIButton * infoDarkButtonType = [[UIButton buttonWithType:UIButtonTypeInfoLight] retain];
     infoDarkButtonType.frame = CGRectMake(0.0, 0.0, 25.0, 25.0);
     infoDarkButtonType.backgroundColor = [UIColor clearColor];
     [infoDarkButtonType addTarget:self action:@selector(showInfo) forControlEvents:UIControlEventTouchUpInside];
     UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithCustomView:infoDarkButtonType];
     self.navigationItem.leftBarButtonItem = infoButton;
     [infoDarkButtonType release];
     [infoButton release];
  

большое спасибо.

Я.

Ответ №1:

Если вы хотите, чтобы на панели навигации отображалось изображение, не могли бы вы попробовать это

 @implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect
{
  UIImage *image = [UIImage imageNamed: @"custom_nav_bar.png"];
  [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
  

Комментарии:

1. ДА, это может работать, но это меняет всю панель навигации на каждой странице. Я просто хочу изменить 1 страницу. Не могли бы вы подсказать мне больше, пожалуйста.

2. Можете ли вы скрыть панель навигации и использовать вместо нее пользовательский вид, аналогичный панели навигации, с необходимыми кнопками.

3. Прошу прощения. Боюсь, что это невозможно. Причина этого в контроллере навигации

4. Да, просто скройте панель навигации. Это возможно.

5. [self.navigationController setNavigationBarHidden:YES animated:animated];

Ответ №2:

Используйте эту строку кода, чтобы добавить изображение в NavigationController…

 UIImageView* img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"headerBG.png"]];
img.frame = CGRectMake(0, 0, 320, 44);
[self.navigationController.navigationItem addSubView:img];
[img release];
  

теперь вы устанавливаете изображение в навигации..