Я занимаюсь обновлением приложения для iPhone до графики с высоким разрешением, и у меня возникли проблемы со старыми устройствами.Ситуация затрагивает мои иконки UITabBar.Посмотрите:
![alt text](https://i.stack.imgur.com/T8rhl.png)
Верхний снимок экрана выглядит правильно.Он был запечатлен на iPhone последнего поколения под управлением OS4.Однако второй скриншот совершенно неверный.Иконки в высоком разрешении отображаются в размере 100% и обрезаются.Этот второй скриншот был взят с моего второго поколения iPod touch (старый экран) под управлением OS4.
Итак, я действительно запутался здесь.Я прочитал документацию Apple, и насколько я знаю, я делаю все, что им нужно.В моем комплекте приложений есть изображения с именами:
- tab-featured.png
- tab-featured@2x.png
- tab-themes.png
- tab-topics@2x.png
- (... и т. Д.)
В конструкторе интерфейса я указал версию каждого изображения в низком разрешении(имя файла БЕЗ "@ 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 только что пересек несколько проводов относительно того, что произошло.