PHImageManager
Наследование
-
NSObject -
PHImageManager -
PHCachingImageManager
-
NSObject -
PHImageManager -
PHCachingImageManager
Оператор импорта
Swift
import Photos
Objective C
@import Photos;
Доступность
Доступный в iOS 8.0 и позже.
Совместно используемое PHImageManager объект обеспечивает методы для загрузки данных изображения или видеоданных, связанных с a PHAsset объект. Используйте эти методы, чтобы выбрать полноразмерные фото активы или изображения миниатюр, или получить объекты Основы AV для игры, экспорта и управления видео активами.
Загрузить данные изображения или видеоданные:
Используйте
PHAssetкласс для выборки актива Вы интересуетесь.Вызовите
defaultManagerметод для получения совместно используемого менеджера по изображению объект.Используйте один из методов, перечисленных в Запросе фото Изображений и Запросе Видео Объектов загрузить данные изображения актива или видеоданные.
Менеджер по изображению кэширует изображения актива и данные, которые это предоставляет, поэтому более поздние запросы на те же активы с подобными параметрами возвратят результаты более быстро.
Если необходимо загрузить данные изображения для многих активов вместе, используйте PHCachingImageManager класс, чтобы «предварительно подогреть» кэш путем загрузки изображений Вы ожидаете нуждаться скоро. Например, когда заполнение набора просматривает с фото миниатюрами актива, можно кэшировать изображения перед текущей позицией прокрутки.
-
Возвращает совместно используемого менеджера по изображению объект.
Объявление
Swift
class func defaultManager() -> PHImageManager!Objective C
+ (PHImageManager *)defaultManagerВозвращаемое значение
Менеджер по изображению.
Обсуждение
Этот метод всегда возвращает того же менеджера по изображению объект, совместно использующийся для всего использования в Вашем приложении.
Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
requestImageForAsset (_: targetSize:contentMode:options:resultHandler:) - requestImageForAsset:targetSize:contentMode:options:resultHandler:Запрашивает представление изображения на указанный актив.
Объявление
Swift
func requestImageForAsset(_asset: PHAsset!, targetSizetargetSize: CGSize, contentModecontentMode: PHImageContentMode, optionsoptions: PHImageRequestOptions!, resultHandlerresultHandler: ((UIImage!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestIDObjective C
- (PHImageRequestID)requestImageForAsset:(PHAsset *)assettargetSize:(CGSize)targetSizecontentMode:(PHImageContentMode)contentModeoptions:(PHImageRequestOptions *)optionsresultHandler:(void (^)(UIImage *result, NSDictionary *info))resultHandlerПараметры
assetАктив, данные изображения которого должны быть загружены.
targetSizeЦелевой размер изображения, которое будет возвращено.
contentModeОпция для того, как соответствовать изображению к форматному соотношению требуемого размера. Для получения дополнительной информации посмотрите
PHImageContentMode.optionsОпции, указывающие, как фотографии должны обработать запрос, отформатируйте требуемое изображение и уведомьте Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHImageRequestOptions.
resultHandlerБлок, который вызовут, когда загрузка изображения завершена, обеспечивая требуемое изображение или информацию о состоянии запроса.
Блок берет следующие параметры:
resultТребуемое изображение.
infoСловарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает или генерирует изображение актива в, или рядом, размер, который Вы указываете. Затем, это вызывает Ваш
resultHandlerблок для обеспечения требуемого изображения. Для обслуживания запроса более быстро фотографии могут обеспечить изображение, которое немного больше, чем целевой размер — или потому что такое изображение уже кэшируется или потому что это может быть сгенерировано более эффективно. В зависимости от опций Вы указываете и текущее состояние актива, фотографии могут загрузить данные актива с сети.По умолчанию этот метод выполняется асинхронно. При вызове его от фонового потока, можно измениться
synchronousсвойствоoptionsпараметр кYEStrueдля блокирования вызывающего потока или до, требуемое изображение готово или, ошибка, происходит, в которых фотографиях времени вызывает обработчик результата.Для асинхронного запроса фотографии могут вызвать Ваш блок обработчика результата несколько раз. Фотографии сначала вызывают блок для обеспечения низкокачественного изображения, подходящего для отображения временно, в то время как это подготавливает высококачественное изображение. (Если низкокачественные данные изображения сразу доступны, первый вызов может произойти перед возвратами метода.), Когда высококачественное изображение готово, фотографии вызывают Ваш обработчик результата снова для обеспечения его. Если менеджер по изображению уже кэшировал требуемое изображение в полном качестве, фотографии вызывает Ваш обработчик результата только один раз.
PHImageResultIsDegradedKeyвведите обработчик результатаinfoкогда фотографии обеспечивают временное низкокачественное изображение, параметр указывает.Можно использовать этот метод и для фотографии и для видео активов — для видео актива, запрос изображения обеспечивает кадр плаката или изображение миниатюр.
Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
requestImageDataForAsset (_: options:resultHandler:) - requestImageDataForAsset:options:resultHandler:Запрашивает полноразмерные данные изображения на указанный актив.
Объявление
Swift
func requestImageDataForAsset(_asset: PHAsset!, optionsoptions: PHImageRequestOptions!, resultHandlerresultHandler: ((NSData!, String!, UIImageOrientation, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestIDObjective C
- (PHImageRequestID)requestImageDataForAsset:(PHAsset *)assetoptions:(PHImageRequestOptions *)optionsresultHandler:(void (^)(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info))resultHandlerПараметры
assetАктив, для которого можно загрузить данные изображения.
optionsОпции, указывающие, как фотографии должны обработать запрос, отформатируйте требуемое изображение и уведомьте Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHImageRequestOptions.
resultHandlerБлок, который вызовут, когда загрузка изображения завершена, обеспечивая требуемое изображение или информацию о состоянии запроса.
Блок берет следующие параметры:
imageDataТребуемое изображение.
dataUTIТребуемое изображение.
orientationНамеченная ориентация дисплея для изображения.
infoСловарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает самое большое доступное представление актива изображения, затем вызывает Ваш
resultHandlerблок для предоставления требуемых данных. В зависимости от опций Вы указываете и текущее состояние актива, фотографии могут загрузить данные актива с сети.По умолчанию этот метод выполняется асинхронно. При вызове его от фонового потока, можно измениться
synchronousсвойствоoptionsпараметр кYEStrueдля блокирования вызывающего потока или до, требуемое изображение готово или, ошибка, происходит, в которых фотографиях времени вызывает обработчик результата. Этот метод игнорируетdeliveryModeопция — фотографии вызывают Ваш блок обработчика результата точно один раз.Если
versionопция установлена вPHImageRequestOptionsVersionCurrent, Фотографии обеспечивают представленные данные изображения, включая результаты любых редактирований, сделанных к содержанию актива. Иначе, фотографии обеспечивает первоначально полученные данные изображения для актива.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
requestPlayerItemForVideo (_: options:resultHandler:) - requestPlayerItemForVideo:options:resultHandler:Запрашивает представление видео актива для воспроизведения, чтобы быть загруженным асинхронно.
Объявление
Swift
func requestPlayerItemForVideo(_asset: PHAsset!, optionsoptions: PHVideoRequestOptions!, resultHandlerresultHandler: ((AVPlayerItem!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestIDObjective C
- (PHImageRequestID)requestPlayerItemForVideo:(PHAsset *)assetoptions:(PHVideoRequestOptions *)optionsresultHandler:(void (^)(AVPlayerItem *playerItem, NSDictionary *info))resultHandlerПараметры
assetВидео актив, который будет воспроизведен.
optionsОпции, указывающие, как фотографии должны обработать запрос и уведомить Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHVideoRequestOptions.
resultHandlerБлок фото вызовы после загрузки данных актива и подготовки элемента проигрывателя.
Блок берет следующие параметры:
playerItemAVPlayerItemвозразите, что можно использовать для того, чтобы воспроизвести видео актив.infoСловарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает видеоданные (если необходимый), и создает элемент проигрывателя. Это тогда вызывает Ваш
resultHandlerблок для обеспечения требуемого видео.Используйте этот метод, когда Вы хотите просто воспроизвести видео актив, поскольку это в настоящее время существует. Для более подробных опций или работать с аудиотреками актива и видеотреками, используйте
requestAVAssetForVideo:options:resultHandler:метод вместо этого.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
requestExportSessionForVideo (_: options:exportPreset:resultHandler:) - requestExportSessionForVideo:options:exportPreset:resultHandler:Запрашивает сеанс экспорта на запись данных видео актива к файлу, чтобы быть загруженным асинхронно.
Объявление
Swift
func requestExportSessionForVideo(_asset: PHAsset!, optionsoptions: PHVideoRequestOptions!, exportPresetexportPreset: String!, resultHandlerresultHandler: ((AVAssetExportSession!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestIDObjective C
- (PHImageRequestID)requestExportSessionForVideo:(PHAsset *)assetoptions:(PHVideoRequestOptions *)optionsexportPreset:(NSString *)exportPresetresultHandler:(void (^)(AVAssetExportSession *exportSession, NSDictionary *info))resultHandlerПараметры
assetВидео актив, для которого должен быть создан сеанс экспорта.
optionsОпции, указывающие, как фотографии должны обработать запрос и уведомить Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHVideoRequestOptions.
exportPresetПредварительная установка экспорта называет для экспорта актива. Для доступных предварительных установок посмотрите Ссылку класса AVAssetExportSession.
resultHandlerБлок, что фото вызовы после загрузки данных актива и подготовки сеанса экспорта.
Блок берет следующие параметры:
exportSessionAVAssetExportSessionвозразите, что можно использовать для записи данных видео актива к файлу.infoСловарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает видеоданные (если необходимый), и создает сеанс экспорта. Это тогда вызывает Ваш
resultHandlerблок для обеспечения требуемого видео.Для дополнительных опций экспорта используйте
requestAVAssetForVideo:options:resultHandler:метод и затем создаетAVAssetReaderиAVAssetWriterобъекты транскодировать и вывести данные видео актива.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Запросы объекты Основы AV, представляющие содержание и состояние видео актива, чтобы быть загруженным асинхронно.
Объявление
Swift
func requestAVAssetForVideo(_asset: PHAsset!, optionsoptions: PHVideoRequestOptions!, resultHandlerresultHandler: ((AVAsset!, AVAudioMix!, [NSObject : AnyObject]!) -> Void)!) -> PHImageRequestIDObjective C
- (PHImageRequestID)requestAVAssetForVideo:(PHAsset *)assetoptions:(PHVideoRequestOptions *)optionsresultHandler:(void (^)(AVAsset *asset, AVAudioMix *audioMix, NSDictionary *info))resultHandlerПараметры
assetВидео актив, для которого состоят в том, чтобы быть загружены видео объекты.
optionsОпции, указывающие, как фотографии должны обработать запрос и уведомить Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHVideoRequestOptions.
resultHandlerБлок, что фото вызовы после загрузки данных актива.
Блок берет следующие параметры:
assetОбъект, обеспечивающий доступ к видео активу как набор дорожек и метаданных. Для получения дополнительной информации при работе с
AVAssetобъекты, см. Руководство по программированию Основы AV.audioMixИспользуйте этот объект перестроить аудиотреки актива, отредактировать дополнительное аудио в соединение или сконфигурировать
AVAssetReaderOutputобъект для экспорта аудиоданных актива. Еслиnil, актив использует аудио соединение по умолчанию.infoСловарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает видеоданные (если необходимый), и создает объекты Основы AV. Это тогда вызывает Ваш
resultHandlerблок для обеспечения требуемого видео.Используйте этот метод, когда Вы хотите работать с расположением аудиотреков и видеотреков, которые содержит актив. Если Вы планируете использовать актив только для воспроизведения, вызовите
requestPlayerItemForVideo:options:resultHandler:метод. Если Вы планируете экспортировать данные актива, вызовитеrequestExportSessionForVideo:options:exportPreset:resultHandler:метод.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Отменяет асинхронный запрос
Объявление
Swift
func cancelImageRequest(_requestID: PHImageRequestID)Objective C
- (void)cancelImageRequest:(PHImageRequestID)requestIDПараметры
requestIDЧисловой идентификатор запроса, который будет отменен.
Обсуждение
Когда Вы выполняете асинхронный запрос на данные изображения с помощью
requestImageForAsset:targetSize:contentMode:options:resultHandler:метод, или для видео объекта с помощью одного из методов, перечисленных в Запросе Видео Объектов, менеджер по изображению возвращает числовой идентификатор для запроса. Для отмены запроса, прежде чем это завершится обеспечьте этот идентификатор при вызовеcancelImageRequest:метод.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
Типы данных
-
Числовой идентификатор для асинхронного запроса изображения.
Объявление
Swift
typealias PHImageRequestID = Int32Objective C
typedef NSUInteger PHImageRequestID;Обсуждение
Передайте этот идентификатор
cancelImageRequest:метод, если необходимо отменить запрос, прежде чем он завершится.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
Специальные значения для
targetSizeпараметрrequestImageForAsset:targetSize:contentMode:options:resultHandler:метод.Объявление
Swift
let PHImageManagerMaximumSize: CGSizeObjective C
CGSize const PHImageManagerMaximumSize;Константы
-
PHImageManagerMaximumSizeИспользуйте этот размер, чтобы запросить данные исходного изображения или самое большое представленное доступное изображение.
Доступный в iOS 8.0 и позже.
Обсуждение
Когда Вы используете
PHImageManagerMaximumSizeопция, фотографии обеспечивают самое большое изображение, доступное для актива, не масштабируясь или обрезая. (Т.е. это игнорируетresizeModeопция.) -
-
Специальные значения для
PHImageRequestIDидентификатор, которые возвращаются асинхронными запросами.Объявление
Objective C
#define PHInvalidImageRequestID ((PHImageRequestID)0)Константы
-
Опции для адаптации форматному соотношению изображения к требуемому размеру, используемому
requestImageForAsset:targetSize:contentMode:options:resultHandler:метод.Объявление
Swift
enum PHImageContentMode : Int { case AspectFit case AspectFill }Objective C
typedef enum : NSInteger { PHImageContentModeDefault = 0, PHImageContentModeAspectFit = PHImageContentModeDefault, PHImageContentModeAspectFill = 1 } PHImageContentMode;Константы
-
PHImageContentModeDefaultСоответствует изображению к требуемому размеру с помощью опции по умолчанию,
PHImageContentModeAspectFit.Используйте этот режим содержания при запросе полноразмерного изображения с помощью
PHImageManagerMaximumSizeзначение для целевого размера. В этом случае менеджер по изображению не масштабирует или обрезает изображение.Доступный в iOS 8.0 и позже.
-
AspectFitPHImageContentModeAspectFitМасштабирует изображение так, чтобы его большая размерность соответствовала целевому размеру.
Используйте эту опцию, когда Вы захотите, чтобы все изображение было видимо, такой, представив ее в представлении с
UIViewContentModeScaleAspectFitрежим содержания.Доступный в iOS 8.0 и позже.
-
AspectFillPHImageContentModeAspectFillМасштабирует изображение так, чтобы оно полностью заполнило целевой размер.
Используйте эту опцию, когда Вы захотите, чтобы изображение полностью заполнило область, такой, представив ее в представлении с
UIViewContentModeScaleAspectFillрежим содержания.Доступный в iOS 8.0 и позже.
Обсуждение
С любой опцией получающееся изображение может не точно соответствовать целевой размер, в зависимости от
deliveryModeиresizeModeсвойства запроса изображения. Для обслуживания запроса более быстро фотографии могут обеспечить немного увеличенное изображение — то, которое он может генерировать более легко или уже кэширующийся тот.Оператор импорта
Objective C
@import Photos;Swift
import PhotosДоступность
Доступный в iOS 8.0 и позже.
-
-
Ключи, идентифицирующие информацию о результате загрузки изображения, используемом в
resultHandlerблок сrequestImageForAsset:targetSize:contentMode:options:resultHandler:метод.Объявление
Swift
let PHImageResultIsInCloudKey: String let PHImageResultIsDegradedKey: String let PHImageResultRequestIDKey: String let PHImageCancelledKey: String let PHImageErrorKey: StringObjective C
NSString *const PHImageResultIsInCloudKey; NSString *const PHImageResultIsDegradedKey; NSString *const PHImageResultRequestIDKey; NSString *const PHImageCancelledKey; NSString *const PHImageErrorKey;Константы
-
PHImageResultIsInCloudKeyБулево значение, указывающее, хранятся ли фото данные актива на локальном устройстве или должны быть загружены с iCloud. (
NSNumber)Если
YEStrue, никакое изображение не было предоставлено, потому что данные актива должны быть загружены с iCloud. Для загрузки данных подайте другой запрос и укажитеYEStrueдляnetworkAccessAllowedопция.Доступный в iOS 8.0 и позже.
-
PHImageResultIsDegradedKeyБулево значение, указывающее, является ли изображение результата низкокачественной заменой для требуемого изображения. (
NSNumber)Если
YEStrue,resultпараметр ВашегоresultHandlerблок содержит низкокачественное изображение, потому что фотографии еще не могли обеспечить изображение более высокого качества. В зависимости от Ваших настроек вPHImageRequestOptionsвозразите, что Вы обеспечили запросом, фотографии могут вызвать Ваш блок обработчика результата снова для обеспечения изображения более высокого качества.Доступный в iOS 8.0 и позже.
-
PHImageResultRequestIDKeyУникальный идентификатор для запроса изображения. (
NSNumber)Эти соответствия идентификатора, возвратившиеся при подаче с просьбой. Можно использовать его с
cancelImageRequest:метод к запросам отмены с незаконченными результатами, которые больше не необходимы.Доступный в iOS 8.0 и позже.
-
PHImageCancelledKeyБулево значение, указывающее, был ли отменен запрос изображения. (
NSNumber)Если Вы вызываете
cancelImageRequest:метод для отмены запроса фотографии вызывают блок обработчика результата со значениемYEStrueдля этого ключа.Доступный в iOS 8.0 и позже.
-
PHImageErrorKeyОшибка, произошедшая, когда фотографии попытались загрузить изображение. (
NSError)Фотографии обеспечивают ошибочный объект для этого ключа, если он не может обеспечить изображение для Вашего блока обработчика
resultпараметр. Исследуйте ошибочный объект на информацию о причине ошибки.Доступный в iOS 8.0 и позже.
-
