#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];
теперь вы устанавливаете изображение в навигации..