Я занимаюсь обновлением своего iPhone-приложения до графики с высоким разрешением, и у меня возникли проблемы со старыми устройствами. Ситуация связана с моими значками UITabBar. Посмотрите:
Верхний скриншот выглядит корректно. Он был записан на iPhone последнего поколения (новый экран) под управлением OS4. Однако второй скриншот совершенно неправильный. Значки с высоким разрешением отображаются со 100% размером и обрезаются. Этот второй снимок был снят с моего iPod touch второго поколения (старый экран) с OS4.
Итак, я действительно смущен. Я прочитал документацию Apple, и насколько я знаю, я делаю все, что им нужно. В моем комплекте приложений у меня есть изображения, названные так:
- вкладка-featured.png
- [email protected]
- вкладка-topics.png
- [email protected]
- (... и т.д....)
Внутри построителя интерфейсов я указал версию с низким разрешением каждого изображения (имя файла WITHOUT "@2x" ), которое будет использоваться на панели вкладок. Если я правильно понимаю документацию на iPhone, устройство должно автоматически определять разрешение экрана и отображать версию с высоким разрешением, если она доступна. Поэтому, если что-нибудь, похоже, что мой iPod touch неправильно обнаруживает его разрешение дисплея. Возможно, я что-то пропустил?
Любая помощь или понимание, которые могут быть предложены, будут оценены! Спасибо.
Обновление 1:
Пока не повезло. Я взял ручной подход и добавил следующее в команду viewDidLoad
моего UITabBarController
:
- (void)viewDidLoad {
[super viewDidLoad];
UITabBarItem *tab;
UIViewController *item;
tab = [[UITabBarItem alloc] initWithTitle:@"Featured" image:[UIImage imageNamed:@"tab-featured.png"] tag:0];
item = [self.viewControllers objectAtIndex:0];
item.tabBarItem = tab;
[tab release];
tab = [[UITabBarItem alloc] initWithTitle:@"Topics" image:[UIImage imageNamed:@"tab-topics.png"] tag:1];
item = [self.viewControllers objectAtIndex:1];
item.tabBarItem = tab;
[tab release];
tab = [[UITabBarItem alloc] initWithTitle:@"Video" image:[UIImage imageNamed:@"tab-video.png"] tag:2];
item = [self.viewControllers objectAtIndex:2];
item.tabBarItem = tab;
[tab release];
tab = [[UITabBarItem alloc] initWithTitle:@"Experts" image:[UIImage imageNamed:@"tab-experts.png"] tag:3];
item = [self.viewControllers objectAtIndex:3];
item.tabBarItem = tab;
[tab release];
tab = [[UITabBarItem alloc] initWithTitle:@"Events" image:[UIImage imageNamed:@"tab-events.png"] tag:4];
item = [self.viewControllers objectAtIndex:4];
item.tabBarItem = tab;
[tab release];
}
Это все равно дает тот же результат, что и выше (большие значки отсечки в панели вкладок). Кто-нибудь слышал о проблемах с заполнением пиктограмм значков высокого разрешения UITabBar?
Обновление 2:
Относительно комментария Джеймса:
Да, я смог это разрешить. Это была ошибка с ссылками на файлы в XCode. У меня не было идей, поэтому я откинулся назад и начал вырезать все @2x изображения из моего приложения, чтобы снова отобразить все снова с помощью изображений с низким разрешением. После того, как приложение снова отображает изображения правильного размера (хотя и с низким разрешением), затем один за другим я начал добавлять образы @2x обратно, ожидая чего-то сломать. Казалось, он отлично работает во второй раз. Не знаю, почему и что произошло. SDK просто показалось, что некоторые провода пересекаются относительно того, что произошло.