728x90
반응형
@IBOutlet weak var sulIMG: UIImageView!
let picker = UIImagePickerController()
override func viewDidLoad() {
// ImgView 에 Action 추가
let tgr = UITapGestureRecognizer(target: self, action: #selector(ImagePick))
sulIMG.isUserInteractionEnabled = true
sulIMG.addGestureRecognizer(tgr)
}
// ImageView 클릭시 호출됨
@objc func ImagePick() {
//ImpagePicker alert 구현
let alert = UIAlertController(title: "술 사진을 골라주세요", message: nil, preferredStyle: .actionSheet)
let album = UIAlertAction(title: "사진앨범", style: .default){
(action) in self.openAlbum()
}
let camera = UIAlertAction(title: "카메라", style: .default){
(action) in self.openCamera()
}
let delete = UIAlertAction(title: "삭제", style: .destructive){
//TODO 추가 이미지 setting (+)
(action) in print("")
}
let cancel = UIAlertAction(title: "취소", style: .cancel, handler: nil)
alert.addAction(album)
alert.addAction(camera)
alert.addAction(delete)
alert.addAction(cancel)
present(alert, animated: true, completion: nil)
}
func openAlbum() {
picker.sourceType = .photoLibrary
present(picker, animated: false, completion: nil)
}
func openCamera() {
if(UIImagePickerController .isSourceTypeAvailable(.camera)){
picker.sourceType = .camera
present(picker, animated: false, completion: nil)
}else{
// 카메라 못연다는 alert
let alert = UIAlertController(title: "카메라 열기 실패", message: "카메라 열기에 실패했습니다.", preferredStyle: .alert)
let cancel = UIAlertAction(title: "확인", style: .cancel, handler: nil)
alert.addAction(cancel)
present(alert, animated: false, completion: nil)
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let img = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
sulIMG.image = img
}
dismiss(animated: true, completion: nil)
}
func saveImg(){
let documents = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
// Convert to Data
if let data = sulIMG.image!.jpegData(compressionQuality: 0.5) {
do {
try data.write(to: documents.appendingPathComponent(self.sulName.text! + ".jpg"))
} catch {
// 이미지 저장실패 alert
let alert = UIAlertController(title: "이미지 저장 실패", message: "이미지를 저장하는대 실패하였습니다.", preferredStyle: .alert)
let cancel = UIAlertAction(title: "확인", style: .cancel, handler: nil)
alert.addAction(cancel)
present(alert, animated: false, completion: nil)
}
}
}
728x90
반응형
'IOS&Mac' 카테고리의 다른 글
[swift] TextField 입력형식 제어 (0) | 2023.02.27 |
---|---|
[swift] Table View 다루기 (0) | 2023.02.27 |
[Swift] Launch Screen 로딩화면 만들기 (2) | 2020.06.21 |
SearchBar 와 TableView 만들기 (0) | 2018.03.07 |
KEXT Programming , KEXT 실행 (0) | 2017.02.15 |
댓글