[Swift] UIIMageView에 표시된 이미지를 터미널에 저장
11673 단어 UIImageViewSwiftXcode10iOS
완성형
다음 GIF 이미지는 CollectionView에서 임의의 이미지를 선택한 후 화면 이동을 통해 이미지를 저장합니다. 이번에는 화면 이동 후의 이미지 저장 부분만 소개합니다.
1. UIIMage에 클릭 이벤트 추가
UIIMageView를 클릭하면 포함된 UIIMage를 가져옵니다.
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//UIImageViewのインスタンスを生成
let imageView = UIImageView(image: UIImage(named: "sample.png"))
let width = view.frame.width
let height = view.frame.height
imageView.frame.size = CGSize(width: width, height: height/3)
imageView.contentMode = .scaleAspectFill
imageView.clipsToBounds = true
// UIImageView にタップイベントを追加
imageView.userInteractionEnabled = true
imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.saveImage(_:))))
// 画面の中心に UIImageView を配置
imageView.center = self.view.center
self.view.addSubview(imageView)
}
// セーブを行う
@objc func saveImage(_ sender: UITapGestureRecognizer) {
//タップしたUIImageViewを取得
let targetImageView = sender.view! as! UIImageView
// その中の UIImage を取得
let targetImage = targetImageView.image!
//保存するか否かのアラート
let alertController = UIAlertController(title: "保存", message: "この画像を保存しますか?", preferredStyle: .alert)
//OK
let okAction = UIAlertAction(title: "OK", style: .default) { (ok) in
//ここでフォトライブラリに画像を保存
UIImageWriteToSavedPhotosAlbum(targetImage, self, #selector(self.showResultOfSaveImage(_:didFinishSavingWithError:contextInfo:)), nil)
}
//CANCEL
let cancelAction = UIAlertAction(title: "CANCEL", style: .default) { (cancel) in
alertController.dismiss(animated: true, completion: nil)
}
//OKとCANCELを表示追加し、アラートを表示
alertController.addAction(cancelAction)
alertController.addAction(okAction)
present(alertController, animated: true, completion: nil)
}
// 保存結果をアラートで表示
func showResultOfSaveImage(_ image: UIImage, didFinishSavingWithError error: NSError!, contextInfo: UnsafeMutableRawPointer) {
var title = "保存完了"
var message = "カメラロールに保存しました"
if error != nil {
title = "エラー"
message = "保存に失敗しました"
}
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
// OKボタンを追加
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
// UIAlertController を表示
self.present(alert, animated: true, completion: nil)
}
2. 프라이버시 설정 변경
코드는 여기에서 완성하지만, 반드시 해야 할 일이 하나 더 있다.
info.plist의 Privacy 설정반드시 추가해야 할 것은 다음과 같은 두 가지다.
Reference
이 문제에 관하여([Swift] UIIMageView에 표시된 이미지를 터미널에 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/misakiagata/items/eb6a2285ae341b480eca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)