Расширение приложения для iPhone 5 - лучшая практика
Теперь, когда Apple собирается начать поставки iPhone 5, я изучаю расширение своих приложений, чтобы они отображались в полноэкранном режиме на iPhone 5. Я запускал свои приложения на симуляторе, и даже те, у которых UITableView
распространяется в нижней части экрана, черные полосы появляются вверху и внизу экрана.
Вот мой вопрос: Какова наилучшая практика для расширения приложений для iPhone 5?
Должен ли я сделать отдельный наконечник для экрана 3,5 и 4, или расширить все в коде?
Я пытаюсь сделать это как можно более плавным, насколько это возможно, поэтому я обращаюсь к знанию SO, чтобы подвести меня к тому, что лучший способ создать для обоих экранов.
Ответы
Ответ 1
Использование полного 4-дюймового экрана в ваших приложениях кажется таким же простым, как добавление нового изображения по умолчанию с именем [email protected]
размером 640 x 1136. Xcode 4.5 фактически предложит вам сделать это автоматически, добавив черный образ правильного размера и имени для вашего проекта.
Для приложений, которые используют стандартные компоненты пользовательского интерфейса, такие как представления таблиц, эти таблицы магически расширены, чтобы заполнить экран. Я обновил приложение для работы, и это было буквально просто, с несколькими незначительными проблемами, связанными с моим собственным кодом и настройкой пользовательского интерфейса. Но в целом, очень легко.
Контрастируйте это с другим приложением, над которым я работаю (для себя), который не использует ни один из стандартных компонентов пользовательского интерфейса, кроме UIViews. Чтобы иметь дело с экранами 3.5 "и 4", мне пришлось потратить довольно много времени на рефакторинг кода, который должен знать размер экрана для различных операций приложения. (Приложение в этом случае скорее представляет собой игру/симулятор, чем сказать, приложение для повышения производительности.)
Таким образом, ваш пробег может варьироваться в зависимости от уровня усилий, который действительно необходим для поддержки 4-дюймового экрана. Это будет зависеть от того, насколько сложным и "нестандартным" является ваше приложение, как я обнаружил.
Ответ 2
При обновлении существующего приложения для iphone 5 с большим экраном вы также можете обнаружить, что нижняя часть экрана не является "кликабельным". Например, если у вас есть панель инструментов в нижней части экрана, эта панель инструментов будет отображаться правильно, но кнопки не будут реагировать на касание. Если это так, вам нужно сообщить приложению, что окно использует полный экран.
Если у вас есть MainWindow.xib
, откройте его, выберите window
и в инспекторе атрибутов убедитесь, что установлен флажок "Полный экран при запуске".
Если у вас нет MainWindow.xib
в вашем проекте (а для большинства более новых проектов нет), вам нужно добавить одну дополнительную строку в applicationDidFinishLaunching
вашего делегата приложения:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window setFrame:[[UIScreen mainScreen] bounds]];
...
}
Я положил его в начале метода. Работали как шарм.
Ответ 3
Вы найдете этот путь с симулятором XCode- > Targets- > Summary- > iPhone/iPod Deployment Info (Retina 4-inch)
Вам нужно добавить изображение по умолчанию размером 640 x 1136.
Применить этот код в файле AppDelegate
mainWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
mainWindow.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
Вы получите размер основного экрана вашего окна. еще одна вещь, когда вы хотите проверить свой файл класса, просто добавьте этот код
if ([UIScreen mainScreen].bounds.size.height > 500.0f)
Для вашего контроллера просмотра просто добавьте одно свойство autoresizingMask
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
Это отлично работает для меня.
Ответ 4
Я искал ту же проблему, пытаясь получить iPhone 5 (4 "), чтобы отобразить мои xib файлы на весь экран, и я нашел этот ответ, в котором говорится, что вам нужно добавить только изображение [email protected]
, чтобы сообщить iOS, что он должен отображать ваше приложение в 4" полноэкранном режиме. просто добавив, что эта проблема была решена для меня.
Почему [UIScreen mainScreen].bounds] не возвращает полный размер экрана?