Last active
August 1, 2019 08:20
-
-
Save amirhanov/b8dd189de99de9bb74f59174fbb7dec2 to your computer and use it in GitHub Desktop.
Как сохранить фотографию в Photo Library.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Всем привет! | |
Сегодня мы научимся сохранять фотографию в Photo Library. Для достижения данной цели мы воспользуемся Библиотекой Photos, для этого переходим в файл ViewController (или свой) и импортируем ее: | |
import Photos | |
Ниже в классе создадим константку для фотографии: | |
let snapshot: UIImage = someImage | |
Вместо someImage можете указать свою фотографию или например фотографию загруженную пользователем в UIImage. Далее нам нужно создать функцию, в которой мы реализуем сохранение. Создаем ее: | |
fileprivate func saveImage() { | |
} | |
Внутри укажем PHPhotoLibrary, которая предоставляет доступ к метаданным и данным изображений для фотографий, видео и другого связанного с ними контента в библиотеке фотографий пользователя, включая контент из Camera Roll, iCloud Shared, Photo Stream, импортированный и синхронизированный из iTunes. После запрашиваем внести изменения с помощью performChanges и внутри создадим запрос на создание, удаление, изменение метаданных с помощью PHAssetChangeRequestе. Далее указываем новый актив с помощью creationRequestForAsset, который нужно создать, в нашем случае это наша константа: | |
PHPhotoLibrary.shared().performChanges({ | |
PHAssetChangeRequest.creationRequestForAsset(from: snapshot) | |
}, completionHandler: { success, error in | |
if success { | |
// Успешно исход! | |
} | |
else if let error = error { | |
// Отмена | |
} | |
else { | |
// Отмена без ошибки | |
} | |
}) | |
Теперь укажем, что произойдет в случае успешного сохранения фотографии или отмены сохранения. Вы можете здесь создать например Alert Controller или просто написать print(). | |
Из-за настроек конфиденциальности Apple, мы должны спросить у пользователя, можно ли получить доступ к Библиотеке и можно ли туда что-то сохранять. Перейдем в файл info.plst, нажмем на плюс и создадим три запроса: | |
NSCameraUsageDescription - Разрешить доступ к камере для фотографирования | |
NSPhotoLibraryUsageDescription - Включите доступ к библиотеке фотографий, чтобы выбрать фотографию из своей библиотеки | |
NSPhotoLibraryAddUsageDescription - Включите доступ к библиотеке фотографий, чтобы сохранять изображения в своей библиотеке фотографий прямо из приложения | |
Отлично! Остается только добавить функцию saveImage() внутрь вашей кнопки, при нажатии на которую произойдет сохранение фотографии в Photo Library и можно тестировать приложение. | |
Благодарю за внимание! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment