Подтвердить что ты не робот

Как отображать изображение в панели навигации приложения iPhone?

как отобразить изображение в панели навигации приложения iPhone? (скажем, сразу после названия)

4b9b3361

Ответ 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];