19.08.2016, 15:37:31
Войти Зарегистрироваться
Авторизация на сайте

Ваш логин:

Ваш пароль:

Забыли пароль?

Навигация
Новости
Архив новостей
Реклама
Календарь событий
Right Left

iOS9 по дням :: День 6 :: Многозадачность с разделенным экраном - shinobicharts

  1. Автор Крис Грант Этот пост является частью ежедневной серии блогов iOS9. Более подробную информацию...
  2. Разделенный вид
  3. Включение многозадачности в вашем приложении
  4. Не принимая участия
  5. Важность автоматического макета
  6. Не используйте UIInterfaceOrientation больше!
  7. События перехода изменения размера
  8. Отвечая на события клавиатуры
  9. Другие соображения
  10. Дальнейшее чтение

Автор Крис Грант

Этот пост является частью ежедневной серии блогов iOS9. Более подробную информацию можно найти на страница указателя ,

Одним из самых больших изменений в iOS 9 стало введение многозадачности. Многозадачность позволяет пользователям одновременно видеть на экране более одного приложения. Это приходит в двух формах. Перемещение и разделение.

Скользить над видом

Скользить над видом

При просмотре слайдов пользователь проводит пальцем по правой стороне, чтобы отобразить список своих приложений, а затем может выбрать одно, чтобы открыть его в отображаемом узком окне. Это появляется в верхней части приложения, которое было ранее открыто, и любое взаимодействие с левой стороной окна отключено.

Разделенный вид

Разделенный вид

Чтобы открыть разделенный вид, пользователь тянет вертикальный разделитель, который появляется в режиме «Скользящий вид», далее влево. Пользователь напрямую контролирует размер окна вашего приложения, перемещая вертикальный разделитель между двумя окнами приложения. Когда разделенный вид активен, концепция переднего плана или фонового приложения отсутствует. Оба приложения находятся на переднем плане.

Стоит отметить, что разделенный вид в настоящее время доступен только на iPad Air 2.

Включение многозадачности в вашем приложении

Новые проекты, созданные в Xcode 7, имеют многозадачность, включенную по умолчанию. Однако если у вас уже есть приложение, вам придется включить его вручную. Когда вы используете iOS 9 SDK, для этого есть несколько шагов.

  1. Включить все ориентации пользовательского интерфейса в вашем приложении
  2. Используйте раскадровки запуска

Не принимая участия

Если ваше приложение уже выполняет вышеуказанные действия, многозадачность будет включена, когда оно будет создано с помощью iOS 9 SDK. Если вы хотите отказаться от этого поведения, укажите ключ UIRequiredFullscreen в вашем файле info.plist.

Важность автоматического макета

Auto Layout был впервые представлен в iOS 6 и дает вам возможность выложить свой пользовательский интерфейс, указав ограничения, а не фиксированные позиции. Адаптивная компоновка была введена в iOS8, которая переводит автоматическую компоновку на следующий уровень, позволяя указывать различные ограничения на основе разных классов размеров. Классы размера определяют относительный объем отображаемого пространства для высоты и ширины окна вашего приложения.

Из-за характера многозадачности есть несколько проблем, которые вам необходимо учитывать при компиляции приложения с iOS 9 SDK.

Не используйте UIInterfaceOrientation больше!

Концептуально, это больше не работает, если ваше приложение поддерживает многозадачность. Если у вас есть многозадачное приложение и вы проверяете текущую UIInterfaceOrientation, вы не можете быть уверены, что ваше приложение работает в полноэкранном режиме. Если ваше приложение является фронтальным приложением в SplitView, а iPad является альбомным, то, хотя он больше по вертикали, чем по горизонтали, он все равно будет возвращать UIInterfaceOrientationPortrait.

Иногда вам все равно придется изменить интерфейс в зависимости от размера окна приложения. Так как мы можем это сделать? Ответ заключается в использовании traitCollection.horizontSizeClass. Это дает вам информацию о классе размера вашего интерфейса, которую вы можете использовать для условного размещения представлений в вашем приложении.

События перехода изменения размера

Ранее такие события, как willRotateToInterfaceOrientation и didRotateToInterfaceOrientation, были рекомендуемым способом внесения изменений в приложение при повороте экрана. В iOS 8 Apple представила willTransitionToTraitCollection и viewWillTransitionToSize. Эти методы становятся еще более важными в iOS 9 с введением многозадачности. Чтобы проверить, является ли ваш интерфейс книжным или альбомным, что вы все еще можете сделать, вы можете вручную сравнить ширину с высотой.

Отвечая на события клавиатуры

В прошлом клавиатура воздействовала на ваше приложение только тогда, когда оно было открыто самим приложением. Теперь возможно, чтобы клавиатура появлялась поверх вашего приложения, даже если пользователь не открывал ее из вашего приложения.

В некоторых случаях вам может не понравиться клавиатура, появляющаяся в верхней части вашего приложения. Однако, если это препятствует важной части вашего пользовательского интерфейса, тогда ваши пользователи могут быть заблокированы. В этой ситуации вы должны ответить на одно из уведомлений UIKeyboard, которые были вокруг в течение долгого времени. Уведомления WillShow, DidShow, WillHide, DidHide, WillChangeFrame и DidChangeFrame должны дать вам возможность сделать это. Эти события будут срабатывать в обоих приложениях, присутствующих на экране.

Другие соображения

Изменения, которые вы должны будете сделать, не просто визуальные. Ранее приложения могли полагаться на то, чтобы быть единственным приложением, работающим на переднем плане. У вас был единственный доступ к подавляющему большинству системных ресурсов, таких как процессор, графический процессор и память. Однако сейчас это изменилось. Если пользователь активировал разделенное или скользящее представление и одновременно просматривает видео в новой iOS 9 картинка в режиме картинки затем эти ресурсы должны быть разделены между тремя приложениями.

Для лучшего пользовательского опыта система жестко управляет использованием ресурсов и завершает приложения, которые используют больше, чем их доля - документация по многозадачности Apple iOS 9

Поэтому вы должны профилировать и тщательно тестировать свои приложения на разных версиях iPad, чтобы быть уверенными в том, что ваше приложение максимально эффективно и не использует ресурсы, которые ему не нужны.

Дальнейшее чтение

Для получения дополнительной информации о новой функциональности многозадачности в iOS 9, посмотрите на Принятие многозадачности на iPad руководство в библиотеке разработчиков iOS. Я также рекомендовал бы посмотреть сессию WWDC 205, Непрерывная интеграция и покрытие кода в Xcode , Не забудьте, если вы хотите попробовать проект, который мы создали и описали в этом посте, найдите его на GitHub ,

Больше постов из этой серии можно найти на iOS9 Ежедневно страница указателя , Серия также доступна в виде бесплатной электронной книги по ссылке ниже.

Больше постов из этой серии можно найти на iOS9 Ежедневно   страница указателя   ,  Серия также доступна в виде бесплатной электронной книги по ссылке ниже

Так как мы можем это сделать?