2013-10-01 3 views
2

После перехода на XCode 5 и базовый SDK iOS7 некоторые виджеты пользовательского интерфейса в моем приложении по-прежнему выглядят как iOS6-стиль (градиенты, фреймы) на устройствах iOS7. Этого не происходит на эквивалентном эмуляторе для iOS7. Это также не происходит для всех виджетов, всплывающее окно UIDocumentInteractionController выглядит как iOS7 на устройстве, но UIPopoverController этого не делает. Клавиатура для переименования файла также показывает это несоответствие между эмулятором и устройством.Здание с iOS7 создает виджеты iOS6

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

Emulator для сетчатки IPAD: UIPopoverController

IPad третьего поколения с прошивкой 7: UIPopoverController

Код в этом случае довольно просто, не настройка рендеринга или макета.

self.poController = [[UIPopoverController alloc] initWithContentViewController:audioCopyController]; 
[audioCopyController showDoneButton:NO]; 
audioCopyController.view.frame = CGRectMake(0,0,350,250); 
_poController.popoverContentSize = audioCopyController.view.bounds.size; 
_poController.delegate = self; 
[_poController presentPopoverFromRect:view.audiocopyButton.frame 
              inView:view 
         permittedArrowDirections:UIPopoverArrowDirectionDown 
             animated:YES]; 

Благодарим за помощь заранее.

+0

Какое устройство (включая генерацию) вы используете? – muthukumar

+0

iPad 3-го поколения, хотя эта проблема появилась и на iPad Mini. – HeroOfSpielburg

+0

спасибо мужчина .. !! Вы сохранили мою жизнь. Даже у меня был iOS 6.1 SDK на моей машине, и из-за этого я получал iOS6-образный вид моего приложения iOS7. Удаление старого sdk позволило решить мою проблему. !! спасибо .. – Shradha

ответ

0

Хорошо, я обнаружил, что проблема была. Предложение Дэвида заставило меня задуматься.

Я поддерживаю несколько приложений одновременно, и один из них довольно старый. Новый интерфейс Builder в XCode5 разбивает прозрачность для многих полей в старом приложении, поэтому я хранил XCode4 в отдельной установочной папке вместе с XCode5. Кажется, что мой проект XCode5 по-прежнему указывал на папки SDK XCode4 (не знаю, как это было возможно, глядя на фактическую командную строку линкера, вероятно, пролить некоторый свет), поэтому после удаления папки SDK XCode4 с моей машины, чистая сборка с XCode 5 создала правильные виджеты iOS 7 в моем приложении, поддерживающем iOS.

Мораль этой истории - будьте очень осторожны с несколькими установками XCode/SDK на одной машине.Надеюсь, это поможет другим людям, которые могут попробовать что-то подобное, чтобы обеспечить поддержку устаревших приложений.

1

Проверьте конфигурационный файл проекта и файл конфигурации цели. Возможно, он установлен с SDK базы данных iOS 6.X.

Для этого:

  • Перейдите в конфигурационный файл проекта в Xcode 5
  • Перейдите на вкладку Параметры построения
  • редактирования поля базы SDK для переключения его прошивкой 7.

Иногда у нас возникли проблемы с Xcode, которые не учитывают текущие настройки.

Изменение и компиляция помогают понять, что его необходимо изменить.

Убедитесь, что вы правильно настроили его для своей конфигурации проекта и каждого целевого файла конфигурации, из которого вы его запускали.

У вас может быть 2 разных цели для симулятора и ваших устройств.

Надеется, что это помогает Привету

Дэвид

+0

Дэвид, установив этот параметр в «последний SDK 7.0», и попробовал, как вы предложили установить его вручную на 7.0, это, однако, не устранило проблему. Спасибо за предложение! – HeroOfSpielburg

+0

рад, что это помогло вам идти в правильном направлении. –

Смежные вопросы