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 *)
asset
targetSize:(CGSize)targetSize
contentMode:(PHImageContentMode)contentMode
options:(PHImageRequestOptions *)options
resultHandler:(void (^)(UIImage *result, NSDictionary *info))resultHandler
Параметры
asset
Актив, данные изображения которого должны быть загружены.
targetSize
Целевой размер изображения, которое будет возвращено.
contentMode
Опция для того, как соответствовать изображению к форматному соотношению требуемого размера. Для получения дополнительной информации посмотрите
PHImageContentMode
.options
Опции, указывающие, как фотографии должны обработать запрос, отформатируйте требуемое изображение и уведомьте Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHImageRequestOptions.
resultHandler
Блок, который вызовут, когда загрузка изображения завершена, обеспечивая требуемое изображение или информацию о состоянии запроса.
Блок берет следующие параметры:
result
Требуемое изображение.
info
Словарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:
метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает или генерирует изображение актива в, или рядом, размер, который Вы указываете. Затем, это вызывает Ваш
resultHandler
блок для обеспечения требуемого изображения. Для обслуживания запроса более быстро фотографии могут обеспечить изображение, которое немного больше, чем целевой размер — или потому что такое изображение уже кэшируется или потому что это может быть сгенерировано более эффективно. В зависимости от опций Вы указываете и текущее состояние актива, фотографии могут загрузить данные актива с сети.По умолчанию этот метод выполняется асинхронно. При вызове его от фонового потока, можно измениться
synchronous
свойствоoptions
параметр кYES
true
для блокирования вызывающего потока или до, требуемое изображение готово или, ошибка, происходит, в которых фотографиях времени вызывает обработчик результата.Для асинхронного запроса фотографии могут вызвать Ваш блок обработчика результата несколько раз. Фотографии сначала вызывают блок для обеспечения низкокачественного изображения, подходящего для отображения временно, в то время как это подготавливает высококачественное изображение. (Если низкокачественные данные изображения сразу доступны, первый вызов может произойти перед возвратами метода.), Когда высококачественное изображение готово, фотографии вызывают Ваш обработчик результата снова для обеспечения его. Если менеджер по изображению уже кэшировал требуемое изображение в полном качестве, фотографии вызывает Ваш обработчик результата только один раз.
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 *)
asset
options:(PHImageRequestOptions *)options
resultHandler:(void (^)(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info))resultHandler
Параметры
asset
Актив, для которого можно загрузить данные изображения.
options
Опции, указывающие, как фотографии должны обработать запрос, отформатируйте требуемое изображение и уведомьте Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHImageRequestOptions.
resultHandler
Блок, который вызовут, когда загрузка изображения завершена, обеспечивая требуемое изображение или информацию о состоянии запроса.
Блок берет следующие параметры:
imageData
Требуемое изображение.
dataUTI
Требуемое изображение.
orientation
Намеченная ориентация дисплея для изображения.
info
Словарь, предоставляющий информацию о состоянии запроса. Посмотрите Информационные Ключи Результата Изображения для возможных ключей и значений.
Возвращаемое значение
Числовой идентификатор для запроса. Если необходимо отменить запрос, прежде чем он завершится, передайте этот идентификатор
cancelImageRequest:
метод.Обсуждение
Когда Вы вызываете этот метод, фотографии загружает самое большое доступное представление актива изображения, затем вызывает Ваш
resultHandler
блок для предоставления требуемых данных. В зависимости от опций Вы указываете и текущее состояние актива, фотографии могут загрузить данные актива с сети.По умолчанию этот метод выполняется асинхронно. При вызове его от фонового потока, можно измениться
synchronous
свойствоoptions
параметр кYES
true
для блокирования вызывающего потока или до, требуемое изображение готово или, ошибка, происходит, в которых фотографиях времени вызывает обработчик результата. Этот метод игнорирует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 *)
asset
options:(PHVideoRequestOptions *)options
resultHandler:(void (^)(AVPlayerItem *playerItem, NSDictionary *info))resultHandler
Параметры
asset
Видео актив, который будет воспроизведен.
options
Опции, указывающие, как фотографии должны обработать запрос и уведомить Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHVideoRequestOptions.
resultHandler
Блок фото вызовы после загрузки данных актива и подготовки элемента проигрывателя.
Блок берет следующие параметры:
playerItem
AVPlayerItem
возразите, что можно использовать для того, чтобы воспроизвести видео актив.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 *)
asset
options:(PHVideoRequestOptions *)options
exportPreset:(NSString *)exportPreset
resultHandler:(void (^)(AVAssetExportSession *exportSession, NSDictionary *info))resultHandler
Параметры
asset
Видео актив, для которого должен быть создан сеанс экспорта.
options
Опции, указывающие, как фотографии должны обработать запрос и уведомить Ваше приложение прогресса или ошибок. Для получения дополнительной информации посмотрите Ссылку класса PHVideoRequestOptions.
exportPreset
Предварительная установка экспорта называет для экспорта актива. Для доступных предварительных установок посмотрите Ссылку класса AVAssetExportSession.
resultHandler
Блок, что фото вызовы после загрузки данных актива и подготовки сеанса экспорта.
Блок берет следующие параметры:
exportSession
AVAssetExportSession
возразите, что можно использовать для записи данных видео актива к файлу.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 *)
asset
options:(PHVideoRequestOptions *)options
resultHandler:(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 = Int32
Objective C
typedef NSUInteger PHImageRequestID;
Обсуждение
Передайте этот идентификатор
cancelImageRequest:
метод, если необходимо отменить запрос, прежде чем он завершится.Оператор импорта
Objective C
@import Photos;
Swift
import Photos
Доступность
Доступный в iOS 8.0 и позже.
-
Специальные значения для
targetSize
параметрrequestImageForAsset:targetSize:contentMode:options:resultHandler:
метод.Объявление
Swift
let PHImageManagerMaximumSize: CGSize
Objective 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 и позже.
-
AspectFit
PHImageContentModeAspectFit
Масштабирует изображение так, чтобы его большая размерность соответствовала целевому размеру.
Используйте эту опцию, когда Вы захотите, чтобы все изображение было видимо, такой, представив ее в представлении с
UIViewContentModeScaleAspectFit
режим содержания.Доступный в iOS 8.0 и позже.
-
AspectFill
PHImageContentModeAspectFill
Масштабирует изображение так, чтобы оно полностью заполнило целевой размер.
Используйте эту опцию, когда Вы захотите, чтобы изображение полностью заполнило область, такой, представив ее в представлении с
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: String
Objective C
NSString *const PHImageResultIsInCloudKey; NSString *const PHImageResultIsDegradedKey; NSString *const PHImageResultRequestIDKey; NSString *const PHImageCancelledKey; NSString *const PHImageErrorKey;
Константы
-
PHImageResultIsInCloudKey
Булево значение, указывающее, хранятся ли фото данные актива на локальном устройстве или должны быть загружены с iCloud. (
NSNumber
)Если
YES
true
, никакое изображение не было предоставлено, потому что данные актива должны быть загружены с iCloud. Для загрузки данных подайте другой запрос и укажитеYES
true
дляnetworkAccessAllowed
опция.Доступный в iOS 8.0 и позже.
-
PHImageResultIsDegradedKey
Булево значение, указывающее, является ли изображение результата низкокачественной заменой для требуемого изображения. (
NSNumber
)Если
YES
true
,result
параметр ВашегоresultHandler
блок содержит низкокачественное изображение, потому что фотографии еще не могли обеспечить изображение более высокого качества. В зависимости от Ваших настроек вPHImageRequestOptions
возразите, что Вы обеспечили запросом, фотографии могут вызвать Ваш блок обработчика результата снова для обеспечения изображения более высокого качества.Доступный в iOS 8.0 и позже.
-
PHImageResultRequestIDKey
Уникальный идентификатор для запроса изображения. (
NSNumber
)Эти соответствия идентификатора, возвратившиеся при подаче с просьбой. Можно использовать его с
cancelImageRequest:
метод к запросам отмены с незаконченными результатами, которые больше не необходимы.Доступный в iOS 8.0 и позже.
-
PHImageCancelledKey
Булево значение, указывающее, был ли отменен запрос изображения. (
NSNumber
)Если Вы вызываете
cancelImageRequest:
метод для отмены запроса фотографии вызывают блок обработчика результата со значениемYES
true
для этого ключа.Доступный в iOS 8.0 и позже.
-
PHImageErrorKey
Ошибка, произошедшая, когда фотографии попытались загрузить изображение. (
NSError
)Фотографии обеспечивают ошибочный объект для этого ключа, если он не может обеспечить изображение для Вашего блока обработчика
result
параметр. Исследуйте ошибочный объект на информацию о причине ошибки.Доступный в iOS 8.0 и позже.
-