Добавление пользовательского изображения Retina в TabBar в iOS5 - PullRequest
2 голосов
/ 11 декабря 2011

Я безуспешно пытаюсь заставить мои пользовательские изображения сетчатки отображаться в моей пользовательской вкладке iOS5.

У меня есть 4 элемента в моей вкладке, я установил выбранное / невыбранное изображение в contact@2x.png, которыйимеет разрешение 160px x 75px.Я подумал, что 4 из этих изображений шириной 160px будут соответствовать ширине сетчатки 640px.

Вы можете посмотреть мой contact@2x.png здесь https://lh4.googleusercontent.com/-afHulbEcxNE/TuPe-YIj91I/AAAAAAAAAII/lCojphAxF9w/s160/contact%2525402x.png

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

UIImage *selectedContact = [UIImage imageNamed:@"contact@2x.png"];
UIImage *unselectedContact = [UIImage imageNamed:@"contact@2x.png"];

UITabBar *tabBar = self.tabBarController.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];

[item0 setFinishedSelectedImage:selectedContact withFinishedUnselectedImage:unselectedContact];
[item1 setFinishedSelectedImage:selectedContact withFinishedUnselectedImage:unselectedContact];
[item2 setFinishedSelectedImage:selectedContact withFinishedUnselectedImage:unselectedContact];
[item3 setFinishedSelectedImage:selectedContact withFinishedUnselectedImage:unselectedContact];

Во время выполнения я вижу, что масштаб установлен на 1

Почему 2 не берется из суффикса изображения?Панель вкладок огромна и не масштабируется.

Пожалуйста, смотрите скриншот симулятора ниже…

https://lh5.googleusercontent.com/-A5oxZprlDhU/TuPfAlG_HQI/AAAAAAAAAIc/mIwHXOPZSrE/s735/simulator.png

Мои другие изображения сетчатки для моего приложения и значка по умолчанию:за работой.

Мысли?Я схожу с ума ☺ Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 24 февраля 2012

JoePasq не прав, он явно не в курсе последних API для настройки внешнего вида iOS5. Ваша проблема может быть в том, что вы указали @ 2x в имени файла, просто передайте «contact.png» в imagedNamed ...

[UIImage imageNamed: @ "contact.png"]

2 голосов
/ 11 декабря 2011

Посмотрели ли вы документацию по настройке внешнего вида UITabBar ?

Вам следует обратиться к этому руководству Рэй Вендерлих об использовании API-интерфейсов UIAppearance.

Его код такой:

UIImage *tabBackground = [[UIImage imageNamed:@"tab_bg"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UITabBar appearance] setBackgroundImage:tabBackground];
[[UITabBar appearance] setSelectionIndicatorImage: [UIImage imageNamed:@"tab_select_indicator"]];`

Обратите внимание, что настройка происходит на панели вкладок, а не на элементах панели вкладок - при условии, что для каждого из них предусмотрены одинаковые настройки.

Как сказал nbransby , вы не используете @ 2x в имени файла.

Предыдущий неотредактированный ответ:


Из документации:

Изображения, отображаемые на панели вкладок, получены из этого изображения.Если это изображение слишком велико, чтобы поместиться на панели вкладок, оно масштабируется по размеру.Размер изображения панели вкладок обычно составляет 30 х 30 точек.Альфа-значения в исходном изображении используются для создания невыбранных и выбранных изображений - непрозрачные значения игнорируются.

Значки должны быть 30x30 пикселей для нормального разрешения и 60x60 пикселей для разрешения сетчатки.Они также должны быть сплошного цвета, панель вкладок добавляет цвет.

...