Дополнительные изменения платформ tvOS 10
Помимо основных изменений в tvOS, Apple внесла изменения и усовершенствования нескольких существующих платформ в tvOS 10.
Дополнения платформы AVFoundation Framework
Платформа AVFoundation включает следующие улучшения:
- В tvOS 10 приложение больше не реализует различные поведения AVPlayerItem на основе типа контента. Просто задайте
Rate
свойство и AVFoundation определит, когда достаточно содержимого доступно для воспроизведения без остановки. - Новый
AVPlayerLooper
класс упрощает циклику заданного фрагмента мультимедиа во время воспроизведения.
Усовершенствования AVKit Framework
Платформа AVKit включает следующие улучшения:
- Теперь приложение контролирует поведение пропуска avPlayerViewController , поэтому пропуск жеста может перейти к следующему элементу в списке воспроизведения или перейти к текущему элементу.
Усовершенствования основных данных
tvOS 10 включает в себя следующие усовершенствования платформы основных данных:
- Корневые объекты NSManagedObjectContext поддерживают одновременную сбой и извлечение без сериализации.
- Класс NSPersistentStoreCoordinator поддерживает пул хранилищ данных SQLite.
- Объекты NSManagedObjectContext с хранилищами данных SQLite в режиме WAL Journal поддерживают новую функцию создания запросов, где контексты управляемых объектов (MOC) можно закрепить на определенных версиях базы данных для будущих транзакций получения и сбоя.
- Использование высокого уровня
NSPersistenceContainer
для ссылки наNSPersistentStoreCoordinator
ресурсы конфигурации данных NSManagedObjectModel и других ресурсов конфигурации основных данных. - Добавлены несколько новых удобных методов, что
NSManagedObject
упрощает получение и создание подклассов.
Дополнительные сведения см. в справочнике по Платформе данных Apple Core.
Основные улучшения графики
tvOS 10 включает следующие улучшения в графической платформе Core:
- Новый класс CGColorConverterRef можно использовать для выполнения ряда преобразований цветов.
Усовершенствования основных образов
tvOS 10 делает следующие улучшения платформы Core Image:
- Метод
ImageWithExtent
класса CIFilter можно использовать для вставки пользовательской обработки в операцию фильтра. Основной образ вызывает заданный обратный вызов между фильтрами при обработке изображения для вывода или отображения. - Теперь приложение может обрабатывать изображения в цветовом пространстве за пределами рабочего цветового пространства контекста Core Image, преобразовав его в цветовое пространство до и после обработки.
- Несколько улучшений производительности отрисовки были сделаны для
UIImage
отрисовки (при поддержке хранилищ образов Core Image) вUIImageView
объектах. UIImage
Объекты, помеченные широкой гаммой, будут отображаться как цвет широкой гаммы вUIImageView
объектах на устройствах iOS, поддерживающих широкий цвет.- Основной код ядра изображения теперь может запрашивать определенные форматы выходных данных пикселей.
Кроме того, добавлены следующие новые фильтры основных образов:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
Усовершенствования фонда
В платформу Foundation для tvOS 10 были внесены следующие усовершенствования:
- Используйте новый класс NSDateInterval для выполнения вычислений даты и интервала времени, таких как длительность, для сравнения интервалов и тестирования пересечений интервалов.
- В класс NSLocal добавлены несколько новых свойств для получения локальных сведений и доступных форматов отображения.
- Используйте новый класс NSMeasurement для преобразования между различными единицами измерения (UOM) или вычислений по значениям в разных UOM.
- Используйте новый класс NSMeasurementFormatter для форматирования локализованных измерений для отображения пользователю.
- Используйте новые классы NSUnit и NSDimension для представления конкретных UOM.
Улучшения GameKit
В платформу GameKit в tvOS 10 были внесены следующие улучшения:
- Новый тип учетной записи только для iCloud реализован классом GKCloudPlayer .
- Новый класс GKGameSession предоставляет обобщенное решение для управления сохраняемым хранилищем данных в Game Center.
GKGameSession
поддерживает список игроков и приложение отвечает за реализацию того, как и когда дата участника хранится, извлекается или обменивается между игроками. Во многих случаях игровые сеансы могут заменить существующие совпадения на основе поворота, совпадения в режиме реального времени или постоянные методы сохранения игр.
Улучшения игрового процесса
В tvOS 10 были внесены следующие улучшения в платформу GameplayKit:
- Добавлено процедурное создание шума и может использоваться для повышения реалистичности в естественных текстурах, добавления реализма в движения камеры и создания богатых игровых миров.
- Используйте пространственное секционирование для секционирования данных мира игры для эффективного поиска.
- Новый стратег Монте-Карло (GKMonteCarloStrategist) был добавлен для исчерпывающих возможных вычислений перемещения.
- Добавлен новый API дерева принятия решений (GKDecisionTree и GKDecisionNode) для улучшения ИИ для создания игр.
- 3D-поддержка добавлена в существующий агент и поведение поиска путей с помощью новых классов GKAgent3D и GKGraphNode3D .
- Используйте новый класс GKMeshGraph , чтобы обеспечить высокопроизводительные и естественные пути.
- Новые классы GKScene и GKSKNodeComponent делают объединение GameplayKit и SpriteKit проще, чем когда-либо.
Усовершенствования металла
В tvOS 10 были сделаны следующие усовершенствования в платформе Metal:
- Трехмерные приложения и игры теперь могут использовать Tessellation для эффективной отрисовки сложных сцен и геометрии с помощью GPU.
- Используйте специализацию функций для создания высокооптимизируемой коллекции материалов и функций сочетания света для сцены.
- Обеспечивает точное управление выделением ресурсов для оптимизации производительности приложений на основе металла с помощью кучи ресурсов и целевых объектов отрисовки без памяти.
Дополнительные сведения см. в руководстве по программированию металла Apple.
Улучшения шейдеров производительности металла
Следующие усовершенствования были сделаны в платформу шейдеров производительности металла в tvOS 10:
- Многие новые ядра были добавлены в платформу шейдеров производительности металла, чтобы позволить приложению воспользоваться преимуществами высокооптимизированных, параллельных данных вычислений, таких как преобразование цветового пространства и операции нейронной сети.
Усовершенствования ModelIO
Ниже приведены улучшения платформы ModelIO в tvOS 10:
- Теперь поддерживается формат файла USD.
- Используйте новый
MDLMaterialPropertyGraph
класс для легкой поддержки изменений среды выполнения моделей. - Поддержка поля подписи добавлена в класс MDLVoxelArray .
- Используйте новый
MDLLightProbeIrradianceDataSource
класс, чтобы помочь в размещении Light Probe.
Улучшения SceneKit
В платформу SceneKit в tvOS 10 были внесены следующие улучшения:
- SceneKit теперь включает новую систему отрисовки на основе физических данных (PBR) для более реалистичных результатов с более простой разработкой активов.
- Используйте новую модель заливки SCNLightingModelPhysicalLyBased, чтобы продуктив широкий спектр реалистичных эффектов заливки, требуя только трех основных свойств (
Diffuse
Metalness
иRoughness
). - Так как заливка PBR лучше всего работает с освещением на основе среды, используйте
LightingEnvironment
свойство для назначения освещения на основе изображений для всей сцены загорания. IESProfileURL
Используйте свойство для импорта реальных световых светильников, определяющих основу освещения на реальных значениях, таких как интенсивность (в люменях) и цветовая температура (в градусах Келвина).- Класс SCN Камера может обеспечить более высокую реалистичность с помощью функций и эффектов HDR. Используйте адаптивную экспозицию для создания автоматических эффектов или использования вигнетирования, цветной бахромы и градирования цветов, чтобы добавить фильмотические эффекты в игру.
- Функции камеры PBR и HDR обеспечивают лучшие результаты, чем традиционные методы отрисовки, и в результате SceneKit теперь выполняет все вычисления цвета в линейном цветовом пространстве (с помощью цветовой гаммы P3 на широкоцветных устройствах).
- Теперь цвет SceneKit соответствует всем цветам, считывая сведения о профиле цвета.
- SceneKit интерпретирует значения компонентов цвета в линейном цветовом пространстве RGB для всех типов шейдеров.
- Так как SceneKit считывает и настраивает сведения о профиле цвета в изображениях текстур, используйте каталоги активов для всех изображений, чтобы обеспечить эти сведения.
- Отрисовка линейного пространства цветов и широкий цвет можно отключить, указав
SCNDisableLinearSpaceRendering
SCNDisableWideGamut
ключи в приложенииInfo.plist
. - Создайте произвольные многоугольники (загруженные из файлов или созданные программным способом), чтобы указать геометрию с новым классом SCNGeometryPrimitiveTypePolygon .
Усовершенствования SpriteKit
Следующие улучшения были сделаны в платформе SpriteKit в tvOS 10:
- Плитки теперь поддерживают квадратные, шестнадцатеричные и isoметрические фигуры плиток для 2D, 2.5D и параллельных прокрутки игр с помощью
SKTileMapMode
иSKTileGroup
SKTileGroupRule
SKTileSet
классов. - Используйте новый
SKWarpGeometry
класс, чтобы растянуть или исказить отрисовку SKSpriteNode или SKEffectNode. Новый класс SKAction можно использовать для анимации переходов между эффектами warp. - Пользовательские шейдеры могут предоставлять атрибуты (
SKAttribute
), которые можно настроить отдельно для каждого узла, использующего шейдер, указав значение атрибута (SKAttributeValue
). - Класс SKView предоставляет несколько новых методов для точного управления тем, когда и как отрисовывается сцена.
Улучшения UIKit
В платформу UIKit в tvOS 10 были внесены следующие улучшения:
- API фокусировки был расширен для поддержки фокуса элемента, отличного от представления, в дополнение к
UIViews
. Элементы, поддерживающие фокус , должны реализоватьIUIFocusItem
интерфейс. - Новый
UIGraphicsRender
класс предоставляет объектно-ориентированный метод создания растровых изображений или PDF-файлов из отрисовки UIKit или основной графики и заменяет устаревшийUIGraphicsBeginImageContext
метод. - Класс
UIUserInterfaceStyle
был добавлен, чтобы определить, какая тема пользовательского интерфейса (темная или светлая) сейчас активна. - Добавлена новая полностью интерактивная, объектная, прерванная поддержка анимации, а фургон связан с жестами. Для получения дополнительных сведений см. справочник по протоколам UIViewAnimating, справочник по классам UIViewPropertyAnimator, справочник по протоколу UITimingCurveProvider, UICubicTimingParameters Class Reference и UISpringTimingParameter Class Reference.
- Новое
UIPreviewInteraction
иUIPreviewInteractionDelegate
разрешить приложению предоставить пользовательский интерфейс для просмотра и всплывающих операций. - Новый
UIAccessibilityCustomRotor
класс позволяет приложению предоставлять пользовательские, контекстные функции для вспомогательных технологий, таких как Voice Over. UIAccessibilityIsAssistiveTouchRunning
Используйте символы,UIAccessibilityAssistiveTouchStatusDidChangeNotification
чтобы определить, включена ли поддержка AssistiveTouch.UIAccessibilityHearingDevicePairedEar
Используйте символы,UIAccessibilityHearingDevicePairedEarDidChangeNotification
чтобы получить состояние любых парных слуховых средств MFi.- Новый API UIPasteboard предоставляет новые параметры (например, ограничения времени существования) и автоматически объявляет совместимые типы контента для общих типов классов.
- Для поддержки динамического
UIFont
типа в метках, текстовых полях и текстовых полях используется новыйPreferredFontForTextStyle
метод класса. - Чтобы решить, должен ли элемент обновить шрифт при изменении устройств
UIContentSizeCategory
, используйтеAdjustsFontForContentSizeCategory
свойство делегатаUIContentSizeCategoryAdjusting
. - Теперь приложение может контролировать внешний вид значка для элементов панели вкладок, таких как текст и цвет фона.
- Элемент управления обновления теперь поддерживается во всех подклассах представления прокрутки и представления прокрутки (например
UICollectionView
). - Метод
OpenURL
класса называется асинхронноUIApplication
поддерживает обработчик завершения, который вызывается после завершения открытия. - Инициируйте совместное использование CloudKit и изменяйте его свойства с помощью новых
UICloudSharingController
иUICloudSharingControllerDelegate
классов. - Воспользуйтесь преимуществами предварительно подготовленных ячеек, чтобы улучшить процесс прокрутки
UICollectionViews
с помощью новогоUICollectionViewDataSourcePrefetching
делегата.