как отобразить изображение в панели навигации приложения iPhone? (скажем, сразу после названия)
Как отображать изображение в панели навигации приложения iPhone?
Ответ 1
Здесь, как иметь изображение, центрированное в NavBar.
UIImage *image = [UIImage imageNamed: @"NavBarImage.png"];
UIImageView *imageView = [[UIImageView alloc] initWithImage: image];
self.navigationItem.titleView = imageView;
[imageView release];
Этот код фактически содержится в источнике Apple для NavBar и может быть найден в iPhone Developer Center в Apple. Источник показывает вам различные способы управления как StatusBar, так и NavBar.
Ответ 2
Я не тестировал это, но поскольку UINavigationBar - это представление, вы можете добавить к нему подвид.
UIImage* myImage = [UIImage imageNamed:@"Myimage.png"];
UIImageView* myImageView = [[UIImageView alloc] initWithImage:myImage];
myImageView.frame.origin.x = 30.0; // You will have to find suitable values for the origin
myImageView.frame.origin.y = 5.0;
[myTabbar addSubView:myImageView];
[myImageView release];
Вы можете использовать такие вещи, как свойство backItem, чтобы вычислить положение вашего изображения.
Ответ 3
Если вы хотите изображение справа от панели навигации, вы можете определить его как пользовательскую кнопку без каких-либо действий при нажатии, например,
UIButton* fakeButton = (UIButton *) [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yourimage.png"]];
UIBarButtonItem *fakeButtonItem = [[UIBarButtonItem alloc] initWithCustomView:fakeButton];
self.navigationItem.rightBarButtonItem = fakeButtonItem;
[fakeButtonItem release];
[fakeButton release];
Ответ 4
Просто разместите этот код в - (void)viewWillAppear:(BOOL)animated;
, чтобы он работал нормально
и добавьте одно изображение размером 320x40 с именем Top Bar
UIImage *image = [UIImage imageNamed: @"TopBar.png"];
[self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
Ответ 5
панель навигации имеет свойство, называемое названием - это соответствует изображению, которое вам нравится. Поскольку titleView перезаписывает заголовок навигационной панели, вы должны включить нужный заголовок в файл изображения. Все равно установите заголовок на то, что вы хотите, чтобы он отображался на задней кнопке, когда вы нажимаете контроллер просмотра
Ответ 6
Я столкнулся с той же проблемой. Определите лучшее решение
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"background_image.png"] forBarMetrics:UIBarMetricsDefault];
Надеюсь, это поможет....
Ответ 7
Просто напишите свою собственную панель навигации. Поэтому вам необходимо отключить кусок панели навигации:
Отключите верхнюю панель в построителе интерфейса, выбрав свой навигационный контроллер в ваш раскадровка: Инспектор атрибутов → Имитированные показатели → Верхняя панель: выберите "Нет"
Впоследствии вы можете добавить любой HeaderView, который вам нравится...
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, sFrame.size.width, 100)];
UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"header_image.png"]];
self.headerView.backgroundColor = background;
// ...add buttons and labels
[self.view addSubview:headerView];