iOS 5: UITabBarItem setFinishedSelectedImage: withFinishedUnselectedImage: не работает / игнорируется - PullRequest
1 голос
/ 18 декабря 2011

согласно Apple документы

Я пытаюсь установить пользовательские готовые выбранные и невыбранные изображения на UITabBarItem следующим образом:


...
DetailViewController *vc1 = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
UITabBarItem *vc1i = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemTopRated tag:100];
[vc1i setFinishedSelectedImage:[UIImage imageNamed:@"tab_bar_item_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab_bar_item_normal.png"]];
[vc1 setTabBarItem:vc1i];
...

По сути, происходит то, что TabBar загружается просто отлично, он просто полностью игнорирует настройку элемента панели вкладок.

Я нацеливаюсь на iOS5 +

Изображения являются прозрачными PNG 30x30 и существуют в проекте. Не могу понять, что я здесь пропускаю, но должно быть что-то!

Это вызывается в методе tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath, учебник Рэла Вендерлиха

У кого-нибудь есть идеи?

Спасибо!

Ответы [ 2 ]

6 голосов
/ 18 декабря 2011

Элемент панели вкладок инициализируется методом: initWithTabBarSystemItem:tag:. Но, как сказано в документации:

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

Вы должны инициализировать элемент панели вкладок с initWithTitle:image:tag:.

UITabBarItem *vc1i = [[UITabBarItem alloc] initWithTitle:@"Top Rated" image:nil tag:100];
[vc1i setFinishedSelectedImage:[UIImage imageNamed:@"tab_bar_item_selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"tab_bar_item_normal.png"]];
2 голосов
/ 22 ноября 2013

Если вы пытаетесь добиться отображения фактического изображения в UITabBar, используйте следующий код:

[yourTabBarItem setImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

и если вы хотите отобразить изображение в исходном состоянии для выбранного, используйте следующее

[yourTabBarItem setSelectedImage:[[UIImage imageNamed:@"more.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];

эти два являются альтернативой

setFinishedSelectedImage:  withFinishedUnselectedImage:
...