iPhone-SDK: Добавление изображения на панель навигации: - PullRequest
1 голос
/ 14 сентября 2009

У меня есть контроллер навигации, который также имеет табличное представление. Я хочу добавить изображение слева от панели навигации вверху программно. Когда я попытался добавить с помощью кода ниже в viewDidLoad:

CGRect frame = CGRectMake(0.0, 0.0, 94.0, 33.0);
    UIImageView *image = [ [UIImageView alloc]initWithImage:[UIImage imageNamed:@"topBarImage.png"] ];
    image.frame = frame;
    [self.view addSubview:image];

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

Клав /

1 Ответ

14 голосов
/ 14 сентября 2009

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

UIButton *button =  [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[UIImage imageNamed:@"myImage.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(blah) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 32, 32)];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];

Вы хотите сделать это таким образом, потому что название контроллера Nav будет изменяться автоматически таким образом. Если вы сделаете это по-своему (подпункт навигационной панели), текст будет позади или поверх изображения

редактировать: он также будет оставаться на экране, когда вы нажимаете и нажимаете контроллеры представления.

edit2: еще раз, вы можете использовать просмотр изображений как пользовательский вид, а не кнопку. Вот код

UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,32,32)];
[iv setImage:[UIImage imageNamed:@"myImage.png"]];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:iv];
[iv release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...